sql - consultas · consultas sql select especifica as colunas e expressões exibidas no resultado...
TRANSCRIPT
![Page 1: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/1.jpg)
2008.1
SQL - Consultas
![Page 2: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/2.jpg)
2008.1
Manipulando Dados
CONSULTA SELECT
INCLUSÃO INSERT
ALTERAÇÃO UPDATE
EXCLUSÃO DELETE
![Page 3: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/3.jpg)
2008.1
Consultas SQL
• Realização de consultas em tabelas
SELECT atributo1, atributo2, ...
FROM tabela 1, tabela 2, ...
WHERE condição
![Page 4: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/4.jpg)
2008.1
Consultas SQL
Select Especifica as colunas e expressões exibidas noresultado da consulta.
From Especifica as tabelas que contêm os dados exibidos nosresultado da consulta.
Where Especifica as condições usadas para filtrar registros noresultado da consulta.
Order by
Classifica os resultados da consulta com base nosdados de uma ou mais colunas.
Group By
Agrupa as linhas da consulta com base nos valores deuma das colunas.
Having Especifica as condições usadas para filtraragrupamentos de dados no resultado da consulta. Sódeve ser usado com GROUP BY.
![Page 5: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/5.jpg)
2008.1
Consultas SQL
• Exibir todos os dados de todos os clientes.
SELECT * FROM cliente
• Exibir todos os dados de todos os funcionários.
SELECT * FROM funcionário
• Exibir todos os dados de todos os produtos.
SELECT * FROM produto
• O * simboliza “mostrar todos os campos databela”
![Page 6: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/6.jpg)
2008.1
Selecionando Colunas• Exibir código, nome e telefone de todos os clientes.
SELECT código, nome, fone FROM cliente
• Exibir código, nome, estado civil e data de nascimento detodos os funcionários.
SELECT código, nome, estcivil, datanasc
FROM funcionário
• Exibir código, nome, preço de custo e preço de venda detodos os produtos.
SELECT código, nome, custo, venda
FROM produto
![Page 7: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/7.jpg)
2008.1
Cláusula Where
• Os operadores <, <=, >, >=, =, <> podem serusados para testar valores de atributos
SELECT * FROM clientes WHERE salario > 100
SELECT * FROM fitas WHERE titulo = ‘Matrix’
• Os operadores lógicos AND, NOT, OR podem serusados para combinar condições
SELECT * FROM clientes
WHERE salario > 100 AND sexo = ‘F’
![Page 8: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/8.jpg)
2008.1
Cláusula Where• BETWEEN – usado para verificar se o valor de um
atributo está em um intervalo de valores
dados dos clientes com salário entre 500 e 1500
SELECT * FROM clientes
WHERE salario BETWEEN 500 AND 1500
• IN – usado para verificar se o valor de um atributo estáem um conjunto de valores
dados dos clientes com salário igual a 500 OU1500
SELECT * FROM clientes
WHERE salario IN (500,1500)
![Page 9: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/9.jpg)
2008.1
Exibir colunas calculadas• Sintaxe:
SELECT <lista de colunas,expressão> FROM<tabela>
• Exibir código, quantidade em estoque, preço de venda evalor total (quantidade X preço de venda) para cadaproduto.
SELECT código, quantest, venda,quantest*venda as valortotalFROM produto
• Exibir código, nome, salário e o salário com 32% deaumento para todos os funcionários.
SELECT código, nome, salário,salário*1.32 as novosalario
FROM funcionário
![Page 10: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/10.jpg)
2008.1
Exibir colunas calculadas
• SUM – função que soma valores de umatributo
SELECT SUM(salario) FROM clientes
• AVG – função que calcula a média dosvalores de um atributo
SELECT AVG(salario) FROM clientes
• MAX – função que exibe o maior valor de umatributo
SELECT MAX(salario) FROM clientes
![Page 11: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/11.jpg)
2008.1
Exibir colunas calculadas
• MIN – função que exibe o menor valor de um atributo
SELECT MIN(salario) FROM clientes
• AS – usado para dar nome a uma coluna resultante do
uso de uma função agregada (COUNT, SUM, AVG, MAX,
MIN, etc)
SELECT AVG(salario) AS media_salarial
FROM clientes
![Page 12: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/12.jpg)
2008.1
Exibir colunas calculadas
• Exibir a soma de todos os salários da empresa.
SELECT SUM(salário)
FROM funcionário
• Exibir a média dos salários da empresa.
SELECT AVG(salário)
FROM funcionário
• Exibir o preço médio de venda dos produtos do tipo1
SELECT AVG(venda)
FROM produto WHERE tipo=1
![Page 13: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/13.jpg)
2008.1
Exibir colunas calculadas• Exibir o preço do produto mais caro vendido na empresa.
SELECT MAX(venda) Preço FROM produto
• Exibir a data de nascimento do homem mais novo daempresa.
SELECT MIN(datanasc) FROM funcionárioWHERE sexo=‘M’
• Exibir o maior salário pago a uma funcionária.
SELECT MAX(salário) FROM funcionárioWHERE sexo=‘F’
• Exibir o menor preço de custo dos produtos do tipo 1.
SELECT MIN(custo) FROM produto WHERE tipo =1
![Page 14: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/14.jpg)
2008.1
Contando os Registros
• Exibir quantos clientes têm cadastro na empresa.
SELECT COUNT(*) FROM cliente
• Exibir quantos funcionário têm e_mail.
SELECT COUNT(e_mail) FROM funcionário
• Exibir a quantas cidades a empresa atende.
SELECT COUNT(DISTINCT cidade)
FROM cliente
• Exibir quantos vendedores já atenderam pedido.
SELECT COUNT(DISTINCT vendedor)
FROM pedido
![Page 15: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/15.jpg)
2008.1
Cláusula From com + de uma tabela
• Para cruzar dados que estão em tabelasdiferentes, é preciso listar as tabelas nacláusula FROM e usar o mesmo princípio daoperação produto cartesiano da álgebrarelacional para selecionar apenas as linhas comcódigos correspondentes
SELECT nome, cod_f, data
FROM locacoes, clientes
WHERE locacoes.cod_c = clientes.cod_c
![Page 16: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/16.jpg)
2008.1
Operando strings
• Exibir código e nome de todos os funcionários quetenham o nome começando por “M”
SELECT código, nome FROM funcionárioWHERE nome LIKE ‘M%’
• Exibir código e nome de todos os funcionários quetenham o nome terminando por “Silva”
SELECT código, nome FROM funcionárioWHERE nome LIKE ‘%Silva’
![Page 17: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/17.jpg)
2008.1
Operando strings
• Exibir código e nome de todos os funcionários quetenham “Costa” em qualquer parte do nome.
SELECT código, nome FROM funcionárioWHERE nome LIKE ‘%Costa%’
• Exibir código e nome de todos os funcionários quetenham o nome começando por “Mar” seguido deum caractere qualquer e terminando por “a”
SELECT código, nome FROM funcionário
WHERE nome LIKE 'Mar_a%'
![Page 18: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/18.jpg)
2008.1
Ordenando os resultados• Sintaxe:
SELECT <lista de colunas> FROM <tabela>ORDER BY <coluna> [ASC] [DESC]
• Exibir código, nome e telefone de todos os clientes,ordenados pelo nome do cliente em ordem ascendente.
SELECT código, nome, fone FROM clienteORDER BY nome
• Exibir código, nome, estado civil e data de nascimento detodos os funcionários, ordenados pela data de nascimentoem ordem descendente.
SELECT código, nome, estcivil, datanascFROM funcionárioORDER BY datanasc DESC
![Page 19: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/19.jpg)
2008.1
Ordenando os resultados
• Exibir código, nome e tipo de todos osprodutos existentes na empresa, ordenadospelo tipo em ordem ascendente e pelonome do produto em ordem descendente.
SELECT código, nome, tipo
FROM produto
ORDER BY nome DESC
![Page 20: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/20.jpg)
2008.1
Agrupando Informações• Sintaxe:
SELECT <lista de colunas> FROM <tabela>GROUP BY <coluna> HAVING <condição>
• Exibir a quantidade de homens e mulheres da empresa.SELECT sexo, COUNT(*) QuantidadeFROM funcionário GROUP BY sexo
• Exibir a quantidade de funcionários e o total e salários decada setor da empresa.
SELECT setor, COUNT(*) Funcionários,SUM(salário)Total FROM funcionárioGROUP BY setor
![Page 21: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/21.jpg)
2008.1
Consultas com várias tabelas
• Exibir o código de cada pedido e o nome docliente que realizou cada um deles.
SELECT pedido.código, cliente.nomeFROM pedido, clienteWHERE cliente.código = pedido.cliente
![Page 22: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/22.jpg)
2008.1
Consultas com várias tabelas
• Exibir o nome do setor, nome do funcionário, salárioe função exercida por cada funcionário, ordenadospelo nome do setor
SELECT s.nome, f.nome , f.salario, fu.funcao
FROM setor s, funcionario f, funcao fu
WHERE s.sigla = f.setor and f.função =fu.código
ORDER BY f.nome
![Page 23: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/23.jpg)
2008.1
Sub-Consultas
• Uma sub-consulta é uma consulta cujoresultado é utilizado por uma outra consultamais externa, de forma encadeada e contidano mesmo comando SELECT.
• A consulta mais externa depende daavaliação da sub-consulta.
![Page 24: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/24.jpg)
2008.1
Sub-Consultas
• Quando há necessidade de cruzar informações deduas ou mais tabelas, além do produto cartesiano,pode-se usar as sub-consultas
• Ou seja, uma consulta mais interna retornaparâmetros para a execução de uma consulta mais
externa
Nome de todos os clientes que realizaram locações
SELECT nome
FROM clientes
WHERE cod_c IN (SELECT cod_c FROM locacoes)
![Page 25: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/25.jpg)
2008.1
Sub-Consultas
• Exibir o código, o nome e a quantidade emestoque do produto que tem a maiorquantidade em estoque da empresa.
SELECT código, nome, quantest
FROM produto
WHERE quantest = (SELECT MAX(quantest)
FROM produto)
![Page 26: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/26.jpg)
2008.1
Sub-Consultas• Exibir o código, o nome e o telefone dos clientes
estrangeiros.
– Usando sub-consulta
SELECT código,nome,fone FROM cliente
WHERE cidade IN
(SELECT código FROMcidade WHERE país <> ‘BRA’)
• Usando Junção
SELECT c.código,c.nome,c.foneFROM cliente c, cidade ci
WHERE ci.código = c.cidade and ci.país <> ‘BRA’
![Page 27: SQL - Consultas · Consultas SQL Select Especifica as colunas e expressões exibidas no resultado da consulta. From Especifica as tabelas que contêm os dados exibidos nos resultado](https://reader030.vdocuments.pub/reader030/viewer/2022040405/5e9a140ee3da5336b274ba95/html5/thumbnails/27.jpg)
2008.1
Sub-Consultas• Exibir o código, o nome e o preço de venda de todos os produtos
que não sejam do tipo “Bebidas” ou “Condimentos”.
– Usando sub-consulta
SELECT código, nome, venda
FROM produto
WHERE código not IN (SELECT código FROM tipo WHEREnome IN (‘Bebidas’,’Condimentos’))
– Usando Junção
SELECT p.código,p.nome,p.venda
FROM produto p tipo t
WHERE p.tipo=t.código and t.nome not IN(‘Bebidas’,’Condimentos’)