3. Consultas SQL
• Realização de consultas em tabelas
SELECT atributo1, atributo2, ...
FROM tabela 1, tabela 2, ...
WHERE condição
4. 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 da consulta.
Where Especifica as condições usadas para filtrar registros no
resultado da consulta.
Order
by
Classifica os resultados da consulta com base nos
dados de uma ou mais colunas.
Group
By
Agrupa as linhas da consulta com base nos valores de
uma das colunas.
Having Especifica as condições usadas para filtrar
agrupamentos de dados no resultado da consulta. Só
deve ser usado com GROUP BY.
5. Consultas SQL
• Exibir todos os dados de todos os Hóspedes.
SELECT * FROM hospedes
• Exibir todos os dados de todos os Quartos.
SELECT * FROM quartos
• Exibir todos os dados de todos os serviços.
SELECT * FROM servicos
6. Selecionando Colunas
• Exibir cpf, nome e sexo de todos os hospedes.
SELECT cpf, nome, sexo FROM hospedes
• Exibir descrição e preço de todos os serviços.
SELECT descricao, preco
FROM servicos
7. Eliminando Duplicação na Seleção
• Sintaxe:
SELECT DISTINCT <lista de colunas> FROM <tabela>
• Exibir o cpf de todos os hospedes que já solicitaram serviços.
SELECT DISTINCT hospede FROM solicitacoes
• Exibir todos os quartos que já tiveram estadias.
SELECT DISTINCT quarto FROM estadias
8. Exibir colunas calculadas
• Sintaxe:
SELECT <lista de colunas,expressão> FROM
<tabela>
• Exibir código, descrição, preço e o preço com 32% de
aumento para todos os serviços.
SELECT codServico , descricao, preco,
preco*1.32 ‘Novo Preco’
FROM servicos
9. Exibir colunas calculadas
• SUM – função que soma valores de um
atributo
SELECT SUM(preco) FROM servicos
• AVG – função que calcula a média dos
valores de um atributo
SELECT AVG(preco) FROM servicos
• MAX – função que exibe o maior valor de um
atributo
SELECT MAX(preco) FROM servicos
10. Exibir colunas calculadas
• MIN – função que exibe o menor valor de um atributo
SELECT MIN(preco) FROM servicos
• AS – usado para dar nome a uma coluna resultante do
uso de uma função agregada (COUNT, SUM, AVG, MAX,
MIN, etc)
SELECT AVG(preco) AS media_preco
FROM servicos
11. Contando os Registros
• Exibir quantos hospedes têm cadastro.
SELECT COUNT(*) FROM hospedes
• Exibir quantos hospedes informaram a data de
nascimento
SELECT COUNT(dataNascimento)
FROM hospedes
• Exibir quantos serviços já foram solicitados.
SELECT COUNT(DISTINCT servico)
FROM solicitacoes
12. Cláusula From
• Selecionar dados de uma única tabela
SELECT nome FROM hospedes
• Para cruzar dados que estão em tabelas diferentes, é
preciso listar as tabelas na cláusula FROM e usar o
mesmo princípio da operação produto cartesiano da
álgebra relacional para selecionar apenas as linhas com
códigos correspondentes
SELECT nome,
FROM hospedes, estadias
WHERE hospedes.cpf = estadias.hospede
13. Cláusula From
• É possível definir apelidos para as tabelas e usá-los
em vez dos nomes das tabelas
SELECT h.nome,
FROM hospedes h, estadias e
WHERE h.cpf = e.hospede
14. Cláusula Where
• Os operadores <, <=, >, >=, =, <> podem ser
usados para testar valores de atributos
SELECT * FROM servicos WHERE preco > 100
SELECT * FROM quartos WHERE tipo= 'Standard’
• Os operadores lógicos AND, NOT, OR podem ser
usados para combinar condições
SELECT * FROM hospedes
WHERE dataNascimento > ‘1975-01-01’ AND
sexo = ‘F’
15. Cláusula Where
• BETWEEN – usado para verificar se o valor de um
atributo está em um intervalo de valores
dados dos quartos com valor de diária entre 300
e 500
SELECT * FROM quartos
WHERE valorDiaria BETWEEN 300 AND 500
• IN – usado para verificar se o valor de um atributo está
em um conjunto de valores
dados dos quartos com valor de diária igual a
300 OU 500
SELECT * FROM quartos
WHERE valorDiaria IN (500,1500)
16. Operando strings
• Exibir cpf e nome de todos os hospedes que tenham
o nome começando por “M”
SELECT cpf, nome FROM hospedes
WHERE nome LIKE ‘M%’
• Exibir cpf e nome de todos os hospedes que tenham
o nome terminando por “Santos”
SELECT cpf, nome FROM hospedes
WHERE nome LIKE ‘%Santos’
17. Cláusula Where
• Exibir cpf e nome de todos os hospedes que tenham
“Santos” em qualquer parte do nome.
SELECT cpf, nome FROM hospedes
WHERE nome LIKE ‘%Santos%’
• Exibir cpf e nome de todos os hospedes que tenham
o nome começando por “Mar” seguido de um
caractere qualquer e terminando por “a”
SELECT cpf, nome FROM hospedes
WHERE nome LIKE 'Mar_a%'