Manipulação de Dados

Propaganda
Linguagem Técnica de
Programação III
Manipulação de Dados
Thiago Leite
[email protected]
quarta-feira, 5 de junho de 13
1
Manipulação de Dados
• PHP conecta-se a uma enorme variedade
de bancos de dados
• Oracle, SQL Server, PostgreSQL, MySQL
Interbase, DB2...
quarta-feira, 5 de junho de 13
2
Manipulação de Dados
• Existem frameworks para desenvolvimentos
dos modelos entidades-relacionamento
• Workbench
• Open ModelSphere
• RISE Editor
• SQL Power Architect
• ...
quarta-feira, 5 de junho de 13
3
Manipulação de Dados
• Para a manipulação de cada banco de dados
existem funções específicas
• funções de consulta, conexão,
desconexão, retorno...
Banco
Site
Sybase
SQL Server
MySQL
MySQL>=4.1
Frontbase
Interbase
http://www.php.net/manual/pt_BR/refs.database.php
ODBC
Informix
Oracle
PostgreSQL
SQLite
quarta-feira, 5 de junho de 13
4
Manipulação de Dados
• Manipulação de banco de dados
• Linguagem SQL (Structured Query
Language)
• Linguagem para manipulação de dados
em sistemas gestores de banco de dados
relacionais (SGBDR)
quarta-feira, 5 de junho de 13
5
Manipulação de Dados
• Conectando a uma base de dados MySQL e
inserindo comandos SQL para criação de
uma base de dados
# mysql -­‐u root -­‐p
mysql> CREATE DATABASE carros;
Query OK, 1 row affected (0,12 sec)
quarta-feira, 5 de junho de 13
6
Manipulação de Dados
•
Listando base de dados disponíveis
mysql> SHOW DATABASES;
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
| Database |
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
| information_schema |
| carros |
| gmgnm |
| mysql |
| performance_schema |
+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
5 rows in set (0,10 sec)
quarta-feira, 5 de junho de 13
7
Manipulação de Dados
• Utilizando uma base de dados
mysql> use carros;
Database changed
quarta-feira, 5 de junho de 13
8
Manipulação de Dados
• Criar tabelas em um SGBD MySQL
mysql> CREATE TABLE tipos_de_carros (id integer, nome varchar(255));
Query OK, 0 rows affected (0,17 sec)
quarta-feira, 5 de junho de 13
9
Manipulação de Dados
•
Código em PHP que insere dados em uma base de dados MySQL
<?php
$conn = mysql_connect(‘localhost’, ‘root’, ‘root’);
mysql_select_db(‘carros’, $conn);
mysql_query(“INSERT INTO tipos_de_carros (id, nome) VALUES (1,
‘esportivo’)”, $conn);
mysql_query(“INSERT INTO tipos_de_carros (id, nome) VALUES (2, ‘popular’)”,
$conn);
mysql_query(“INSERT INTO tipos_de_carros (id, nome) VALUES (3,
‘caminhao’)”, $conn);
mysql_close($conn);
?>
quarta-feira, 5 de junho de 13
10
Manipulação de Dados
•
Comandos SQL de consulta ao banco de dados MySQL
mysql> SELECT id,nome FROM tipos_de_carros;
+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
| id | nome |
+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
| 1 | esportivo |
| 2 | popular |
| 3 | caminhao |
+-­‐-­‐-­‐-­‐-­‐-­‐+-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐-­‐+
3 rows in set (0,06 sec)
quarta-feira, 5 de junho de 13
11
Manipulação de Dados
•
Código em PHP para consulta ao banco MySQL
<?php $conn = mysql_connect(‘localhost’, ‘root’, ‘root’);
mysql_select_db(‘carros’, $conn);
$results = mysql_query(“SELECT id,nome FROM tipos_de_carros”,
$conn);
if ($results) {
while ($row = mysql_fetch_assoc($results)) {
echo “Registro: ”.$row[‘id’].” - ”. $row[‘nome’].”<br>\n”;
}
}
mysql_close($conn); ?>
quarta-feira, 5 de junho de 13
12
Manipulação de Dados
• Linguagem SQL
• sintaxe da função SELECT
‣ SELECT <coluna1>,<coluna2>
‣ FROM <tabela1>,<tabela2>
‣ WHERE <condições>
BY <coluna2>, <coluna1> ASC|
‣ ORDER
DESC
quarta-feira, 5 de junho de 13
13
Manipulação de Dados
• Linguagem SQL
• sintaxe da função INSERT
‣ INSERT INTO <tabela> (<coluna1>,
<coluna2>)
‣ VALUES (<valor1>, <valor2>)
quarta-feira, 5 de junho de 13
14
Manipulação de Dados
• Linguagem SQL
• sintaxe da função UPDATE
‣ UPDATE <tabela>
‣ SET <coluna1> = <valor1>,
<coluna2> = <valor2>
‣ WHERE <condição>
quarta-feira, 5 de junho de 13
15
Manipulação de Dados
• Linguagem SQL
• sintaxe da função DELETE
‣ DELETE FROM <tabela>
‣ WHERE <condição>
quarta-feira, 5 de junho de 13
16
Manipulação de Dados
• Criar banco de dados para o código de
conta bancária
quarta-feira, 5 de junho de 13
17
Revisão
• Framework de banco de dados
• SQL
• SELECT
• INSERT
• UPDATE
• DELETE
quarta-feira, 5 de junho de 13
18
Agente de Defensoria
quarta-feira, 5 de junho de 13
19
(continuação)
(FCC) Uma instrução SQL correta para criar a tabela NOTAFISCAL apresentada no
modelo é:
a) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));
b) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL AUTOINCREMENT, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));
c) CREATE SCHEMA NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL AUTO_INCREMENT, dataEmissao DATE NOT NULL, PRIMARY KEY(idNOTAFISCAL));
d) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL, dataEmissao DATE NOT NULL, CONSTRAINT UNIQUE KEY(idNOTAFISCAL));
e) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL CONSTRAINT PRIMARY KEY, dataEmissao DATE NULL);
quarta-feira, 5 de junho de 13
20
(continuação)
(FCC) Uma instrução SQL correta para criar a tabela NOTAFISCAL apresentada no
modelo é:
a) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));
b) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL AUTOINCREMENT, dataEmissao DATE NULL, PRIMARY KEY(idNOTAFISCAL));
c) CREATE SCHEMA NOTAFISCAL (idNOTAFISCAL INTEGER NOT NULL AUTO_INCREMENT, dataEmissao DATE NOT NULL, PRIMARY KEY(idNOTAFISCAL));
d) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL, dataEmissao DATE NOT NULL, CONSTRAINT UNIQUE KEY(idNOTAFISCAL));
e) CREATE TABLE NOTAFISCAL (idNOTAFISCAL INTEGER NULL CONSTRAINT PRIMARY KEY, dataEmissao DATE NULL);
quarta-feira, 5 de junho de 13
20
SPTrans
(VUNESP) Em uma instrução SQL, o caractere
utilizado para representar qualquer caractere em
uma consulta é o:
a) %
b) $
c) #
d) *
e) &
quarta-feira, 5 de junho de 13
21
SPTrans
(VUNESP) Em uma instrução SQL, o caractere
utilizado para representar qualquer caractere em
uma consulta é o:
a) %
b) $
c) #
d) *
e) &
quarta-feira, 5 de junho de 13
21
TCE-AM
(FCC adaptada) Considere o seguinte fragmento de
linguagem SQL:
CREATE TABLE Carros (Codigo INTEGER PRIMARY KEY AUTO_INCREMENT, TEXT Modelo); INSERT INTO Carros VALUES (NULL, "Alfa Romeo"); Após a execução da primeira linha do código acima, ao
ser executado o código presente na segunda linha, será:
quarta-feira, 5 de junho de 13
22
(continuação)
a) inserida uma nova linha na coluna Modelo
b) inserida uma nova linha na tabela Carros.
c) inserida uma nova coluna na linha Carros.
d) inserida uma nova coluna na linha Modelo.
e) exibida uma mensagem de erro, pois a
coluna Código não pode conter um valor
indeterminado (NULL).
quarta-feira, 5 de junho de 13
23
(continuação)
a) inserida uma nova linha na coluna Modelo
b) inserida uma nova linha na tabela Carros.
c) inserida uma nova coluna na linha Carros.
d) inserida uma nova coluna na linha Modelo.
e) exibida uma mensagem de erro, pois a
coluna Código não pode conter um valor
indeterminado (NULL).
quarta-feira, 5 de junho de 13
23
Download