22
SQL: consultas básicas Luiz Henrique Zambom Santana 15/09/2016

Consultas básicas em SQL

Embed Size (px)

Citation preview

Page 1: Consultas básicas em SQL

SQL: consultas básicasLuiz Henrique Zambom Santana

15/09/2016

Page 2: Consultas básicas em SQL

Agenda● SELECT-FROM-WHERE básico sobre uma única tabela● Explorando as cláusulas

○ SELECT ■ Projeção■ Distinct■ COUNT, MIN, MAX, AVG, SUM

○ WHERE■ Intervalos■ LIKE■ IS NULL■ IN

Page 3: Consultas básicas em SQL

Relembrando...

Page 4: Consultas básicas em SQL

SQL versus Álgebra relacional

SQL Álgebra relacionalSELECT projeção

FROM produto cartesiano

WHERE seleção

Page 5: Consultas básicas em SQL

SELECT-FROM-WHERE

SELECT <projeção e funções>

FROM <lista de tabelas>

[ WHERE predicado ]

[ GROUP BY <atributos de agrupamento> ]

[ HAVING <condição para agrupamento> ]

[ ORDER BY <lista de atributos> ] ;

Comandosbásicos

Page 6: Consultas básicas em SQL

SELECT (Álgebra relacional)

πlista_atributos (relação)

● atributos separados por vírgula ● relação● resultado de alguma operação da

álgebra relacional

πnome, idade (Medicos)

Page 7: Consultas básicas em SQL

SELECT● O comando equivalente a operação de projeção da álgebra relacional● Operador * equivale a retornar todos atributos da relação

SELECT *FROM Medicos

Page 8: Consultas básicas em SQL

SELECT (Projeções)● Produz um subconjunto vertical com as colunas solicitadas ● Define uma lista de atributos (colunas) das tabelas consultadas● Exemplo:

SELECT nome,idadeFROM Medicos

Page 9: Consultas básicas em SQL

SELECT (Projeções)● Podemos recuperar valores únicos usando o operador DISTINCT

SELECT distinct especialidade FROM Medicos

Page 10: Consultas básicas em SQL

Exercícios1. Recuperar os nomes de todos pacientes2. Recuperar os nomes de todos médicos3. Recuperar os nomes de todos funcionários4. Recuperar todos atributos de todos pacientes5. Recuperar todos atributos de todas consultas6. Recuperar sem repetições todas cidades dos pacientes

Page 11: Consultas básicas em SQL

Funções (COUNT, MIN, MAX, AVG)● O comando SELECT também pode receber funções sobre a sua lista de

atributos

SELECT count(*) FROM Medicos

SELECT MIN(idade) FROM Medicos

SELECT MAX(idade) FROM Medicos

SELECT AVG(idade) FROM Medicos

SELECT SUM(capacidade) FROM Ambulatorios

Page 12: Consultas básicas em SQL

Exercícios7. Recuperar a maior idade entre os pacientes8. Recuperar a menor idade entre os pacientes9. Recuperar a média de idade entre os pacientes

10. Contar o número de consultas11. Recuperar a maior idade, a menor idade e a média de idade entre os

funcionários12. Recuperar o valor total da folha de pagamento dos funcionários

Page 13: Consultas básicas em SQL

WHERE (Álgebra relacional)

σcondição_seleção (relação)

● pode envolver operadores de comparação (=, >, ≥, <, ≤, ≠)

● pode combinar condições usando-se ∧, ∨, ㄱ

● relação● resultado de alguma operação da

álgebra relacional

σidade> 40 (Medicos)

Page 14: Consultas básicas em SQL

WHERE● O comando equivalente a operação de seleção da álgebra relacional

SELECT *FROM MedicosWHERE idade > 40

Page 15: Consultas básicas em SQL

WHERE● Deve conter pelo menos um operador de comparação (=, >, >=, <, <=, <>)

● Os operadores de comparação podem ser combinados com lógica booleana (AND, OR e NOT)

SELECT especialidadeFROM MedicosWHERE(idade > 40 ANDidade <= 52) ORcidade = ‘Blumenau’ AND nome <> ‘Marcia’

Page 16: Consultas básicas em SQL

SELECT e WHERE (Álgebra relacional)

πespecialidade (σ(idade> 40 ∧ idade ≤ 52) ∨ cidade = ‘Blumenau’ ∧ nome ≠ ‘Marcia’ (Medicos))

Page 17: Consultas básicas em SQL

WHERE● Podemos usar o operador BETWEEN para definir um intervalo de valores

SELECT dataFROM ConsultasWHEREdata BETWEEN ‘2010/10/11’AND ‘2010/10/13’

Page 18: Consultas básicas em SQL

Exercícios13. Recuperar os médicos com idade maior que 5014. Recuperar os pacientes com idade maior que 30 e menor que 5015. Recuperar os médicos de São José16. Recuperar os ambulatórios com capacidade maior que 3017. Recuperar os pacientes com gripe18. Recuperar os traumatologistas de Blumenau19. Recuperar os pacientes de Florianópolis com gripe e idade maior que 3020. Recuperar as datas das consultas entre entre as 15 e as 18 horas

Page 19: Consultas básicas em SQL

WHERE● Podemos usar o operador LIKE para definir um padrão de busca

SELECT nomeFROM MedicosWHERE especialidadeLIKE ‘%dia%’

Page 20: Consultas básicas em SQL

WHERE● Podemos verificar se um valor é NULO

SELECT nomeFROM MedicosWHERE nroaIS NOT NULL

Page 21: Consultas básicas em SQL

WHERE● Podemos também verificar uma enumeração de valores com o operador IN

SELECT nomeFROM MedicosWHERE especialidadeIN (‘ortopedia’,‘pediatria’);

Page 22: Consultas básicas em SQL

Exercícios21. Recuperar os médicos cujo nome comece com ‘Ma’22. Recuperar os funcionários cujo nome comece com ‘Ca’23. Recuperar pacientes cujo CPF é nulo24. Recuperar pacientes cuja cidade seja Joinville ou Blumenau