Banco de DadosBanco de DadosSQL 2SQL 2
Profa. CeçaProfa. Ceça
Ceça MoraesCeça Moraes 22
Visão Gráfica do ExemploVisão Gráfica do Exemplo
MS Access: MS Access: BDExemploSQL2.mdbBDExemploSQL2.mdb
Ceça MoraesCeça Moraes 33
Ceça MoraesCeça Moraes 44
Extraindo dados de tabelas - Extraindo dados de tabelas - SELECTSELECT SELECT <colunas> FROM <tabelas>SELECT <colunas> FROM <tabelas>
[WHERE <condição>[WHERE <condição> ]] SELECT SELECT <colunas> <colunas>
Colunas da consulta separadas por vírgulaColunas da consulta separadas por vírgula FROM FROM <tabelas> <tabelas>
– Tabelas da consulta separadas por vírgulaTabelas da consulta separadas por vírgula WHERE WHERE <condição>]<condição>]
– Condição lógica para seleção de linhasCondição lógica para seleção de linhas
Ceça MoraesCeça Moraes 55
SELECTSELECT Exemplo 1Exemplo 1
Listar todos os produtos com Listar todos os produtos com respectivas descrições, unidades, respectivas descrições, unidades, valores unitáriosvalores unitários
SELECT descricaoProduto, SELECT descricaoProduto, unidade, unidade, valorUnit FROM valorUnit FROM produto;produto;
A execução desse comando irá listar A execução desse comando irá listar todas as linhas da tabela produtostodas as linhas da tabela produtos
Ceça MoraesCeça Moraes 66
SELECTSELECT Exemplo 2Exemplo 2
Listar o CGC, o Listar o CGC, o nome e o endereço nome e o endereço de todos os de todos os clientesclientes
SELECT CGC, SELECT CGC, nomeCliente, nomeCliente, endereco endereco
FROM Cliente;FROM Cliente;
Ceça MoraesCeça Moraes 77
SELECTSELECT Exemplo 3Exemplo 3
Selecionando todas as colunas de Selecionando todas as colunas de uma tabelauma tabela
SELECT * FROM <tabela>SELECT * FROM <tabela> Listar todo o conteúdo de vendedorListar todo o conteúdo de vendedor
SELECT * FROM vendedorSELECT * FROM vendedor Resultado: todos os vendedoresResultado: todos os vendedores
Ceça MoraesCeça Moraes 88
Alterando o cabeçalho (Alterando o cabeçalho (headerheader) ) da colunada coluna Por Por defaultdefault, o cabeçalho apresentado , o cabeçalho apresentado
no resultado do SELECT é o nome da no resultado do SELECT é o nome da coluna da tabelacoluna da tabela
É possível modificá-lo:É possível modificá-lo:
SELECT nome_coluna AS SELECT nome_coluna AS cabecalho, ...cabecalho, ...
FROM nome_da_tabelaFROM nome_da_tabela
Ceça MoraesCeça Moraes 99
Exemplo : Mudando o Exemplo : Mudando o cabeçalhocabeçalho
SELECT codigoVendedor AS [Número do SELECT codigoVendedor AS [Número do Vendedor], nomeVendedor AS [Nome do Vendedor], nomeVendedor AS [Nome do Vendedor], salarioFixo AS rendimentos, Vendedor], salarioFixo AS rendimentos, faixaComissao AS comissao FROM VendedorfaixaComissao AS comissao FROM Vendedor
Ceça MoraesCeça Moraes 1010
Manipulando dados Manipulando dados numéricosnuméricos Operadores aritméticos podem ser Operadores aritméticos podem ser
usados sobre qualquer coluna usados sobre qualquer coluna numéricanumérica– +, -, /, *, %+, -, /, *, %
Exemplo:Exemplo:
SELECT nomeVendedor, (salarioFixo SELECT nomeVendedor, (salarioFixo * 2) AS [Salário Dobrado] FROM * 2) AS [Salário Dobrado] FROM Vendedor Vendedor
Ceça MoraesCeça Moraes 1111
Manipulando dados numéricos Manipulando dados numéricos - Exemplo- Exemplo
O resultado O resultado apresenta os salários apresenta os salários multiplicados por 2.multiplicados por 2.
Ceça MoraesCeça Moraes 1212
Selecionando algumas Selecionando algumas linhas da tabelalinhas da tabela Usando operadores de comparaçãoUsando operadores de comparação
– =, <>, <, >, <=, >==, <>, <, >, <=, >=– Cláusula WHERECláusula WHERE
SELECT <nome das colunas> FROM <tabelas>SELECT <nome das colunas> FROM <tabelas> WHERE <nome das coluna> <operador> WHERE <nome das coluna> <operador>
<valor> <valor>
– Se o valor for do tipo caractere deve estar entre Se o valor for do tipo caractere deve estar entre aspas (“).aspas (“).
Ceça MoraesCeça Moraes 1313
Selecionando linhasSelecionando linhas Listar o numPedido, o codigoProduto, e a Listar o numPedido, o codigoProduto, e a
quantidade dos produtos na tabela quantidade dos produtos na tabela ItemPedido, que tiveram 35 unidades ItemPedido, que tiveram 35 unidades vendidas.vendidas.
SELECT numPedido, codigoProduto, SELECT numPedido, codigoProduto, quan FROM ItemPedidoquan FROM ItemPedido
WHERE quan = 35WHERE quan = 35numPedidonumPedido codigoProdutocodigoProduto QuanQuan
121121 3131 3535
138138 7777 3535
Ceça MoraesCeça Moraes 1414
Selecionando linhas Selecionando linhas Listar os nomes dos clientes da cidade de São Listar os nomes dos clientes da cidade de São
PauloPaulo
SELECT nomeCliente FROM ClienteSELECT nomeCliente FROM Cliente
WHERE cidade = “São Paulo” WHERE cidade = “São Paulo”
Ceça MoraesCeça Moraes 1515
Selecionando linhasSelecionando linhas
Usando operadores lógicosUsando operadores lógicos– AND, OR, NOTAND, OR, NOT
Listar os produtos que tenham unidade Listar os produtos que tenham unidade igual a “M” e valor unitario igual a R$ igual a “M” e valor unitario igual a R$ 1,05 1,05
SELECT descricaoProduto FROM Produto SELECT descricaoProduto FROM Produto
WHERE unidade = “M” AND valUnit = 1.05;WHERE unidade = “M” AND valUnit = 1.05;
DESCRICAOPRODUTODESCRICAOPRODUTO
PapelPapel
Ceça MoraesCeça Moraes 1616
Selecionando linhasSelecionando linhasAND, OR, NOTAND, OR, NOT Liste o código, nome, endereço e cidade de Liste o código, nome, endereço e cidade de
clientes que moram na cidade de São Paulo clientes que moram na cidade de São Paulo OUOU cujo código esteja na faixa entre 200 cujo código esteja na faixa entre 200 EE 300300
SELECT codigoCliente, nomeCliente, endereco, SELECT codigoCliente, nomeCliente, endereco, cidadecidade
FROM ClienteFROM Cliente
WHERE cidade="São Paulo“ OR (codigoCliente WHERE cidade="São Paulo“ OR (codigoCliente >= 200 and codigoCliente <= 300);>= 200 and codigoCliente <= 300);
Ceça MoraesCeça Moraes 1717
Selecionando linhasSelecionando linhasAND, OR, NOTAND, OR, NOT
Ceça MoraesCeça Moraes 1818
Selecionando linhasSelecionando linhasAND, OR, NOTAND, OR, NOT Mostrar todos os pedidos que não tenham Mostrar todos os pedidos que não tenham
prazo de entrega igual a 15 diasprazo de entrega igual a 15 dias SELECT numPedido , prazoEntregaSELECT numPedido , prazoEntrega FROM Pedido FROM Pedido WHERE NOT (prazoEntrega = 15);WHERE NOT (prazoEntrega = 15);
OU OU SELECT numPedido, prazoEntregaSELECT numPedido, prazoEntregaFROM PedidoFROM PedidoWHERE prazoEntrega <> 15WHERE prazoEntrega <> 15
Ceça MoraesCeça Moraes 1919
Selecionando linhasSelecionando linhasBetween e Not BetweenBetween e Not Between Uso em substituição aos operadores Uso em substituição aos operadores
<= e >=<= e >= IntervalosIntervalos
WHERE <nome das coluna> WHERE <nome das coluna> BETWEEN <valor1> AND <valor2>BETWEEN <valor1> AND <valor2>
WHERE <nome das coluna> NOT WHERE <nome das coluna> NOT BETWEEN <valor1> AND <valor2>BETWEEN <valor1> AND <valor2>
Ceça MoraesCeça Moraes 2020
Selecionando linhasSelecionando linhasBetween e Not BetweenBetween e Not Between
Listar o código e a descrição dos produtos que Listar o código e a descrição dos produtos que tenham o valor unitário na faixa de R$ 0,32 até tenham o valor unitário na faixa de R$ 0,32 até R$ 2,00R$ 2,00
SELECT codigoProduto, descricaoProduto, valUnitSELECT codigoProduto, descricaoProduto, valUnit
FROM ProdutoFROM Produto
WHERE valUnit BETWEEN 0.32 AND 2.00;WHERE valUnit BETWEEN 0.32 AND 2.00;
SELECT codigoProduto, descricaoProduto, SELECT codigoProduto, descricaoProduto, valUnitvalUnit
FROM ProdutoFROM Produto
WHERE valUnit BETWEEN 0.32 AND 2.00;WHERE valUnit BETWEEN 0.32 AND 2.00;
Ceça MoraesCeça Moraes 2121
Ceça MoraesCeça Moraes 2222
Selecionando linhasSelecionando linhasLIKE e Not LIKELIKE e Not LIKE Operadores baseados em Operadores baseados em stringstring de de
caracteres LIKE e NOT LIKEcaracteres LIKE e NOT LIKE Só usamos para colunas do tipo CHARSó usamos para colunas do tipo CHAR Usam os símbolos %,* e _ que fazem Usam os símbolos %,* e _ que fazem
substituiçõessubstituições– (% ou *) - substitui uma palavra(% ou *) - substitui uma palavra– (_ ou ?) - substitui um caractere(_ ou ?) - substitui um caractere– MS Access usa * e ?MS Access usa * e ?
WHERE <nome das coluna> LIKE <valor>WHERE <nome das coluna> LIKE <valor> WHERE <nome das coluna> NOT LIKE WHERE <nome das coluna> NOT LIKE
<valor><valor>
Ceça MoraesCeça Moraes 2323
Exemplo usando LIKEExemplo usando LIKE
LIKE “LAPIS%” ou LIKE “LAPIS*” pode LIKE “LAPIS%” ou LIKE “LAPIS*” pode enxergar os seguintes registros:enxergar os seguintes registros:– ‘‘LAPIS PRETO’LAPIS PRETO’– ‘‘LAPIS CERA’LAPIS CERA’– ‘‘LAPIS BORRACHA’LAPIS BORRACHA’
LIKE “BROCA N_” pode enxergar os LIKE “BROCA N_” pode enxergar os seguintes registros:seguintes registros:– ‘‘BROCA N1’BROCA N1’– ‘‘BROCA N2’BROCA N2’– ‘‘BROCA N9’BROCA N9’
Ceça MoraesCeça Moraes 2424
Exemplo usando LIKEExemplo usando LIKE
Listar todos os produtos que tenham Listar todos os produtos que tenham o seu nome começando por C.o seu nome começando por C.SELECT codigoProduto,descricaoProdutoSELECT codigoProduto,descricaoProdutoFROM ProdutoFROM ProdutoWHERE descricaoProduto Like "C*"WHERE descricaoProduto Like "C*"
Ceça MoraesCeça Moraes 2525
Exemplo usando LIKEExemplo usando LIKE
Listar todos os produtos que tenham Listar todos os produtos que tenham o seu nome começando por C.o seu nome começando por C.SELECT codigoProduto,descricaoProdutoSELECT codigoProduto,descricaoProdutoFROM ProdutoFROM ProdutoWHERE descricaoProduto Like "C*"WHERE descricaoProduto Like "C*"
Exemplo usando LIKEExemplo usando LIKE Listar nome e cidade dos clientes cuja UF termina com “P”Listar nome e cidade dos clientes cuja UF termina com “P”
SELECT nomeCliente, UFSELECT nomeCliente, UF
FROM ClienteFROM Cliente
WHERE UF Like '*P'WHERE UF Like '*P'
Ceça MoraesCeça Moraes 2626
2727
ExercíciosExercícios1.1. Listar os vendedores cujo nome não Listar os vendedores cujo nome não
começa por “Jo”começa por “Jo”2.2. Listar o nome e o endereço de todos os Listar o nome e o endereço de todos os
clientes da cidade de Recife ou do clientes da cidade de Recife ou do estado da Bahiaestado da Bahia
3.3. Mostrar todos os pedidos que tenham Mostrar todos os pedidos que tenham prazo de entrega igual a 20 diasprazo de entrega igual a 20 dias
4.4. Listar todos os produtos que tenham o Listar todos os produtos que tenham o seu nome começando por M ou Vseu nome começando por M ou V
5.5. Listar os produtos cujos preços variem Listar os produtos cujos preços variem entre R$ 0,10 e R$ 0,30entre R$ 0,10 e R$ 0,30
2828
ExercíciosExercícios6.6. Listar o código e nome do vendedor Listar o código e nome do vendedor
que têm nome iniciano com a letra que têm nome iniciano com a letra “P”, faixa de comissao = “C” e cujo “P”, faixa de comissao = “C” e cujo salário esteja entre 1000 e 2000. salário esteja entre 1000 e 2000.
7.7. Listar os produtos que nâo têm Listar os produtos que nâo têm descrição.descrição.