2. Tabelas dos Exemplos
As tabelas a seguir serão usadas nos exemplos
que se seguem:
CLIENTE
(cod_cli, nome_cli, endereco, cidade, cep, uf)
VENDEDOR
(cod_vend, nome_vend, sal_fixo, faixa_comiss)
PEDIDO ( num_ped, prazo_entr, cd_cli, cd_vend)
ITEM_PEDIDO (no_ped, cd_prod, qtd_ped)
PRODUTO
(cod_prod, unid_prod, desc_prod, val_unit)
3. Criação de um Bando de Dados SQL
Para a criação de um banco de dados em SQL
temos os seguintes comandos:
Creat Data Base;
Para conhecer quais os bancos de dados
existentes dentro do MySQL basta usar o
comando SHOW DATABASES. SHOW significa
mostrar, apresentar, exibir e DATABASES
significa bases de dados ou bancos de
dados, ou seja, manda mostrar os bancos de
dados existentes.
4. Criação e Destruição de Tabelas
O comando CREATE TABLE é usado para criar uma
tabela. A sua forma geral é:
CREATE TABLE <nome_tabela>
(<descrição das colunas>,
<descrição das chaves>);
onde:
<nome_tabela> dever ser substituído pelo nome da
tabela a ser criada.
<descrição das colunas> deve ser substituída pela
relação das colunas da tabela e seus respectivos tipos
de dados (por
exemplo, smallint, char, varchar, integer, number, float e
etc). <descrição das chaves> deve ser substituída pela
lista das colunas que são tratadas como chaves
estrangeiras.
5. Script de Criação das Tabelas dos
Exemplos
Algumas colunas podem receber o valor NULL
(nulo), e a coluna definida como chave primária,
além de não poder receber NULL.
7. Criação e Destruição de Tabelas
Para excluirmos uma tabela existente devemos usar
o comando DROP
TABLE. A sua forma geral é:
DROP TABLE <nome_tabela>;
onde:
<nome_tabela> dever ser substituído pelo nome da
tabela a ser excluída.
Exemplos
drop table item_pedido;
drop table pedido;
drop table vendedor;
drop table produto;
drop table cliente;
8. Executando Consultas sobre as
Tabelas
Selecionando Colunas Específicas de uma
Tabela
Problema:
Listar todos os produtos com as respectivas
descrições, unidades e valores unitários.
9. Executando Consultas sobre as
Tabelas
Problema:
Listar os nomes dos clientes, as cidade e os
estados onde eles estão localizados.
10. EXERCICIO
1. Com base no que você já aprendeu sobre banco de dados faça
uma produção textual de no mínimo 5 linhas descrevendo o
diagrama abaixo:
11. EXERCICIO
2. Marque V para verdadeiro e F para falso:
( ) CREATE, DROP, ALTER são comandos da Linguagem de
Definição de
Dados (DDL);
( ) É possível usarmos o comando CREATE para alterar estruturas
da base de dados.
( ) O comando UPDATE realiza a exclusão de registros em uma
tabela;
( ) Para apagar linhas da tabela tanto faz usar o comando DROP
como o DELETE.
( ) O comando INSERT realiza a inclusão de um ou mais registros
em uma tabela;
A sequência correta seria:
a) V - V - F – V - F;
b) V - F - F – V - V;
c) F - V - V – F - F;
d) V - F - F – F - V;
12. EXERCICIO
3. Relacione a primeira coluna com a segunda e no final,
indique a resposta
correta:
1 - CREATE ( ) Comando responsável por inserir valores em
uma tabela;
2 – INSERT ( ) - Responsável por retornar registros de uma
tabela;
3 – DROP ( ) - Remove registros de uma tabela;
4 – SELECT ( ) - Tem o poder de remover estruturas do
banco de dados;
5 – DELETE ( ) - Responsável por criar estruturas no banco
de dados;
A sequência correta seria:
a) 4 - 2 - 1 - 3 - 5;
b) 2 - 4 - 5 - 3 - 1;
13. INTRODUÇÃO AO MySQL
1º Passo:
Após a Instalação do
MySQL no seu
computador, abra o
MySQL Command Line
Client. No meu caso eu
baixei a versão 5.5 e
sempre deixo fixado no
Menu Iniciar, mas
qualquer coisa é só
você seguir o caminho
(Iniciar-> Todos os
Programas-> MySQL->
MySQL Server).
14. INTRODUÇÃO AO MySQL
2º Passo:
Depois de Aberto o MySQL, ele pede para que
você entre com o password, ou seja, com a senha
que você definiu na hora da instalação.
15. INTRODUÇÃO AO MySQL
3º Passo:
Para conhecer quais os bancos de dados
existentes dentro do MySQL basta usar o comando
SHOW DATABASES. SHOW significa
mostrar, apresentar, exibir e DATABASES significa
bases de dados ou bancos de dados, ou
seja, manda mostrar os bancos de dados
existentes.
16. INTRODUÇÃO AO MySQL
TIPOS DE DADOS NUMÉRICO:
TIPO
DESCRIÇÃO
BIT
BOOL
o mesmo que TINYINT
o mesmo que TINYINT
SMALLINT[(M)]
inteiros pequenos
INT[(M)]
inteiros regulares
INTEGER[(M)]
o mesmo que INT
BIGINT[(M)]
inteiros grandes
FLOAT(precisão)
números de ponto flutuante de precisão simples ou dupla
FLOAT[(M,D)]
números de ponto flutuante de precisão simples. O mesmo que
FLOAT(4)
DOUBLE[(M,D)]
números de ponto flutuante de precisão dupla. O mesmo que
FLOAT(8)
DOUBLE
O mesmo que DOUBLE[(M,D)]
PRECISION[(M,D)]
O mesmo que DOUBLE[(M,D)]
REAL[(M,D)]
DECIMAL[(M,D)]
O mesmo que DOUBLE[(M,D)]
número de ponto flutuante armazenado como char
NUMERIC[(M,D)]
O mesmo que DECIMAL
DEC[(M,D)]
O mesmo que DECIMAL
17. INTRODUÇÃO AO MySQL
TIPOS DE DADOS DATA:
TIPO
DESCRIÇÃO
DATE
data. Exibido como YYYY-MM-DD
TIME
hora. Exibido como HH:MM:SS
DATETIME
data e hora. Exibido como YYYY-MM-DD HH:MM:SS
TIMESTAMP[(M)]
registro de data e hora útil para transações. Os formatos de
exibição podem ser:
TIMESTAMP YYYYMMDDHHMMSS TIMESTAMP(14)
YYYYMMDDHHMMSS TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD TIMESTAMP(4) YYMM TIMESTAMP(2)
YY
YEAR[(2)]
ano
YEAR[(4)]
ano
18. INTRODUÇÃO AO MySQL
TIPOS DE DADOS STRING:
TIPO
CHAR
[NATIONAL]
DESCRIÇÃO
string de comprimento fixo M. NATIONAL especifica que o
conjunto de caracteres padrão (ANSI SQL) será
utilizado. BINARY especifica que os dados devem ser
tratados de modo a não haver distinção entre maiúsculas e
minúsculas (o padrão é distinguir).
o mesmo que CHAR(1)
string de comprimento variável
VARCHAR(M) [BINARY]
string de tamanho variável. O mesmo que [BINARY].
TINYBLOB
TINYTEXT
BLOB pequeno
TEXT pequeno
BLOB
BLOB normal
TEXT
TEXT normal
MEDIUMBLOB
BLOB médio
MEDIUMTEXT
TEXT médio
LONGBLOB
BLOB longo
LONGTEXT
TEXT longo
ENUM('valor1','valor2',...)
armazenam um dos valores listados ou NULL
[NATIONAL] CHAR(M)
[BINARY]
19. Atenção
Muito cuidado, pois o mysql tem como
delimitador o ponto e vírgula (;), ou seja, se um
ponto e vírgula (;) aparecer em meio a um
código, o mysql entende que ali, o comando está
encerrado e não há necessidade de
continuidade.
Muitos erros acontecem por falta do (ponto e
vírgula) no final do comando.
Outra dica. No linux, o mysql é case-sensitive por
padrão. No windows não, tanto faz letras
maiúsculas como minúsculas. Para desabilitar a
sensibilidade do Linux, habilite o parâmetro
"lower_case_table_names" no MySQL e pronto.
20. NOT NULL
São usados quando campo não pode ser nulo,
ou seja, não pode estar em branco.
Tenha em mente que NULL é diferente de 0
(zero) e uma string vazia, ou seja, campos com
valores NULL são aqueles que não possuem
nenhum valor (NULL significa ausência de valor).
21. AUTO_INCREMENT
O atributo AUTO_INCREMENT pode ser usado
para gerar uma identificação única para um novo
registro:
22. PRIMARY KEY
define a chave primária da tabela, isto é, o
campo que serve como chave da tabela e que
não pode ser repetido.
Exemplo:
Vamos criar uma tabela para cadastro de clientes.
CREATE TABLE clientes(
codigo int(4) AUTO_INCREMENT,
nome varchar(30) NOT NULL,
email varchar(50),
data_nascimento date,
PRIMARY KEY (codigo)
)
23. FOREIGN KEY
Os Bancos de Dados Relacionais são formados
de várias tabelas e utilizam chaves como forma
de referenciar outras tabelas.
Esse relacionamento entre as tabelas é feito
através das chaves estrangeiras.
Quando falamos de chave estrangeira usamos a
sigla FK referente à palavra FOREIGN KEY.
Por exemplo, poderíamos abaixo fazer a tabela
CLIENTE com os campos „cliente_id, nome,
endereço cidade‟ e a tabela PEDIDO com os
campos „pedido_id, cliente_id, preço, data‟ para
armazenar os pedidos.
24. FOREIGN KEY
Os campos com sublinhado simples são as
chaves primárias (PK) que dão uma identificação
única a cada item, e o campo com pontilhado é
uma chave estrangeira através da qual a tabela
CLIENTE se relaciona com a tabela PEDIDO.
25. FOREIGN KEY
Esse tipo de representação evita que para cada
pedido precisemos colocar a toda a identificação do
cliente, basta armazenarmos o id do cliente na tabela
de pedidos e através dele podemos identificar de
quem é o pedido.
Uma chave estrangeira sempre se relaciona com a
chave primária da tabela do relacionamento.
Tratando de códigos, Vamos criar um banco de dados
chamado VENDA e as duas tabelas CLIENTE e
PEDIDO com os campos que foram definidos.
A definição da chave estrangeira segue o seguinte
padrão:
FOREIGN KEY<nome da FK> REFERENCES <
tabela
da PK>(<nome da PK>)
26. FOREIGN KEY
OBS: o nome e o tipo de dado da PK devem
ser o mesmo da FK. A palavra REFERENCES
é usada para dizer qual tabela a FK está
referenciando.
Exemplo:
create table recado (
id_recado INTEGER not null auto_increment,
assunto VARCHAR(100),
recado TEXT,
datahora DATETIME
id_user INTEGER not null,
primary key (id_recado),
FOREIGN KEY (id_usr) REFERENCES usuario (id_usr)
)
27. EXERCICIO pg(88,89 e 90)
1) Comando SQL para criar um
banco de dados chamado
“locadora”
a) create databases locadora;
b) create locadora;
c) create database locadora;
d) use database locadora;
2) Comando SQL para apagar
um banco de dados chamado
"supermercado"
a) delete database
supermercado;
b) drop table supermecado;
c) drop supermercado;
d) drop database
supermercado;
e) delete supermercado;
3) Comando SQL para entrar
no banco de dados chamado
"EEEP"
a) use database EEEP;
b) use table EEEP;
c) create EEEP;
d) usage EEEP;
e) use EEEP;
4) Comando SQL para mostrar
todos os bancos de dados
existentes;
a) show database;
b) show tables;
c) show databases;
d) show BD;
28. EXERCICIO
5) Comando SQL para
apagar a tabela
"produtos" do BD
"supermercado"
a) drop table produtos;
b) delete table
produtos;
c) drop supermercado;
d) drop table
supermercado;
e) drop produtos;
6) Assinale a opção
correta:
O comando DESCRIBE
gera o mesmo resultado
do
comando_____________
___ .
A opção que melhor
completa a sentença é
a) SHOW DETAILS
FROM;
b) SELECT DETAILS
29. EXERCICIO
7) Relacione a primeira coluna com a segunda, após,
indique a sequência correta:
1 - ALTER TABLE ADD ( ) Usado para apagar uma
tabela de um BD
2 - ALTER TABLE CHANGE ( ) Usado para trocar o
nome e o tipo de uma coluna
3- DROP TABLE ( ) Usadas para adicionar uma coluna
em uma tabela
A sequência correta seria:
a) 3 - 1 - 2;
b) 2 - 3 - 1;
c) 1 - 2 - 3;
d) 3 - 2 - 1;
30. EXERCICIO
8) Marque a opção em que a criação da tabela
"filmes" esta feito corretamente:
31. EXERCICIO
9) Com base no exemplo que criamos chave
primária(PK) e chave estrangeira(FK), crie um banco de
dados EMPRESA e as duas tabelas DEPTO e EMP
descritas abaixo com suas respectivas colunas.
Escreva o código da criação
32. EXERCICIO
Crie o banco de dados de locação de automóvel
mediante a este diagrama:
33. Select
O comando SQL que nos permite realizar
consultas ao banco de dados é o comando
SELECT.
EX:
SELECT * FROM DEPT;
O exemplo utiliza o coringa "*" para
selecionar as colunas na ordem em que
foram criadas.
A instrução Select, como pudemos observar
seleciona um grupo de registros de uma (ou
mais) tabela(s).
No caso a instrução From nos indica a
34. Select
Where como base das Restrição de tuplas.
A cláusula "where" corresponde ao operador restrição
da álgebra relacional.
Contém a condição que as tuplas devem obedecer a fim
de serem listadas. Ela pode comparar valores em
colunas, literais, expressões aritméticas ou funções.
Operadores lógicos:
operador significado
=
igual a
>
maior que
>=
maior que ou igual a
<
menor que
<=
menor que ou igual a
35. Select
Exemplos:
SELECT EMPNOME, EMPSERV
FROM EMP
WHERE DEPNUME > 10;
SELECT EMPNOME, EMPSERV
FROM EMP
WHERE EMPSERV = 'GERENTE';
O conjunto de caracteres ou datas devem estar entre
apóstrofes („) na cláusula "where".
36. Select
Selecione todos os departamentos cujo
orçamento mensal seja maior que 100000.
Apresente o Nome de tal departamento e seu
orçamento anual, que será obtido multiplicandose o orçamento mensal por 12.
SELECT DEPNOME, DEPORCA * 12
FROM DEPT
WHERE DEPORCA > 100000;
37. Select
Apresente todos os salários existentes na
empresa, porém omita eventuais duplicidades.
A cláusula Distinct elimina duplicidades,
significando que somente relações distintas serão
apresentadas como resultado de uma pesquisa.
SELECT DISTINCT EMPSERV
FROM EMP;
38. Select
ORDER BY:
Até o momento vimos como obter dados de uma
tabela utilizando os comandos SELECT e WHERE.
Porém, frequentemente precisamos listar os dados
por uma ordem em particular. Pode ser por ordem
ascendente ou descendente. Para isso podemos
utilizar a cláusula ORDER BY para ordenar os
dados. A sintaxe básica da cláusula ORDER BY é a
seguinte:
SELECT < coluna > FROM < tabela > ORDER BY < coluna
>;
39. OBS
Por padrão o ORDER BY vem como ASC
significa que os resultados serão
apresentados por ordem ascendente, ou seja,
do menor para o maior.
Mais também pode ser DESC significa que os
resultados serão apresentados por ordem
descendente, para isso acontecer você
precisa declara-lo.
41. Exemplo
Perceba que a tabela possui 8 produtos
cadastrados, suponhamos que eu preciso ver os
preços de forma ascendente, então iremos
selecionar o nome e o preço ordenado pelo
próprio preço, veja como ficou:
42. Exemplo
Podemos também ordenar os dados de outras
maneiras, se eu quero ver os nomes e o preço
dos produtos em ordem alfabética basta ordenar
pelo nome de forma ascendente.
43. Exemplo
Também posso em vez de colocar o nome da
coluna que eu quero ordenar basta colocar o
numero dela na sequencia selecionada, por
exemplo, se eu selecionei nome e preço então
nome é 1 e preço é 2 e assim por diante:
44. INSTRUÇÕES DML – UPDATE
O comando para atualizar os dados é UPDATE,
ele possui a seguinte sintaxe:
UPDATE < tabela > SET < campo > = “novo
valor” WHERE < condição > ;
tabela: nome da tabela que será modificada
set: define qual campo será alterado
campo: campo que terá seu valor alterado
novo valor: valor que substituirá o antigo dado
cadastrado em campo
where: se não for informado, a tabela inteira será
atualizada
condição: regra que impõe condição para
execução do comando
45. EXEMPLO
Como exemplo usaremos a tabela cliente que foi
usada nos exemplos anteriores.
Suponhamos que o cliente de nome Francisco se
mudou, então precisamos atualizar o seu registro
colocando o seu novo endereço.
47. UPDATE
Também podemos alterar mais de um campo de
uma vez. Suponhamos que o cliente Pedro se
mudou para outra cidade, precisamos alterar o
endereço e a cidade atual, não precisamos criar
dois UPDATES basta separa-los por vírgula.
UPDATE < tabela > SET < campo1 > = “valor1”,
< campo2 > = “valor2” WHERE < condição > ;
49. OBS
Devemos passar sempre o WHERE, que é
uma espécie de filtro em nossa tabela, porque
senão o passarmos atualizaremos TODOS os
dados da tabela e isso pode acarretar
diversos problemas, dependendo do tamanho
e da complexidade da sua tabela.
Imagina se esquecermos de colocar uma
condição em uma tabela de 1.000 registros e
alterarmos todos os endereços dos clientes
para um só.
50. INSTRUÇÕES DML – DELETE
A forma mais simples de se fazer um DELETE é
excluindo todos os dados de uma tabela. A
síntese básica é:
DELETE FROM < nome da tabela >;
Se não for especificada nenhuma condição então
serão excluídos todos os dados da tabela, porém
se você quer excluir somente um registro é
preciso usar a cláusula WHERE informando qual
será a condição para deletar.
DELETE FROM < nome da tabela > WHERE <
condição >;
51. OBS
Lembre-se que este comando, assim como o
UPDATE, pode ser perigoso em algumas
situações, já que, uma vez executado esses
comandos, não será possível desfazer a ação
realizada.
Portanto, devemos ficar atentos ao usar esses
comandos em tabelas complexas.
52. EXEMPLO
Como exemplo vamos usar a mesma tabela que
usamos nos comandos INSERT, SELECT e
UPDATE, que é a tabela cliente do banco de
dados venda.
Suponhamos que o Francisco não é mais o
nosso cliente, então devemos exclui-lo da nossa
tabela, para isso usamos o comando DELETE.
53. EXEMPLO
Perceba que usei a condição referenciando o
cliente-id. Em banco de dados todo registro deve
possuir o seu código, quando vamos alterar ou
excluir um registro é bom que coloquemos como
condição o código do registro, porque o nome
pode ser que apareça outro igual, mais o código
não.
54.
55.
56.
57. Exemplo LIKE
Com este operador, podemos comparar Strings.
O percentual (%) substitui nenhum, um ou mais
caracteres, já a sublinha (_) substitui somente um
caractere.
Utilizando a combinação desses caracteres
especiais com o que se quer localizar, pode-se
conseguir uma variedade muito grande de
expressões.
Veja na tabela a seguir algumas possíveis
combinações: