SlideShare a Scribd company logo
1 of 22
Download to read offline
SQL: consultas básicas
Luiz Henrique Zambom Santana
15/09/2016
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
Relembrando...
SQL versus Álgebra relacional
SQL Álgebra relacional
SELECT projeção
FROM produto cartesiano
WHERE seleção
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> ] ;
Comandos
básicos
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)
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
SELECT (Projeções)
● Produz um subconjunto vertical com as colunas solicitadas
● Define uma lista de atributos (colunas) das tabelas consultadas
● Exemplo:
SELECT nome,idade
FROM Medicos
SELECT (Projeções)
● Podemos recuperar valores únicos usando o operador DISTINCT
SELECT distinct especialidade FROM Medicos
Exercícios
1. Recuperar os nomes de todos pacientes
2. Recuperar os nomes de todos médicos
3. Recuperar os nomes de todos funcionários
4. Recuperar todos atributos de todos pacientes
5. Recuperar todos atributos de todas consultas
6. Recuperar sem repetições todas cidades dos pacientes
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
Exercícios
7. Recuperar a maior idade entre os pacientes
8. Recuperar a menor idade entre os pacientes
9. Recuperar a média de idade entre os pacientes
10. Contar o número de consultas
11. Recuperar a maior idade, a menor idade e a média de idade entre os
funcionários
12. Recuperar o valor total da folha de pagamento dos funcionários
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)
WHERE
● O comando equivalente a operação de seleção da álgebra relacional
SELECT *
FROM Medicos
WHERE idade > 40
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 especialidade
FROM Medicos
WHERE
(idade > 40 AND
idade <= 52) OR
cidade = ‘Blumenau’ AND
nome <> ‘Marcia’
SELECT e WHERE (Álgebra relacional)
πespecialidade
(σ(idade> 40 ∧ idade ≤ 52) ∨ cidade = ‘Blumenau’ ∧ nome ≠ ‘Marcia’
(Medicos))
WHERE
● Podemos usar o operador BETWEEN para definir um intervalo de valores
SELECT data
FROM Consultas
WHERE
data BETWEEN ‘2010/10/11’
AND ‘2010/10/13’
Exercícios
13. Recuperar os médicos com idade maior que 50
14. Recuperar os pacientes com idade maior que 30 e menor que 50
15. Recuperar os médicos de São José
16. Recuperar os ambulatórios com capacidade maior que 30
17. Recuperar os pacientes com gripe
18. Recuperar os traumatologistas de Blumenau
19. Recuperar os pacientes de Florianópolis com gripe e idade maior que 30
20. Recuperar as datas das consultas entre entre as 15 e as 18 horas
WHERE
● Podemos usar o operador LIKE para definir um padrão de busca
SELECT nome
FROM Medicos
WHERE especialidade
LIKE ‘%dia%’
WHERE
● Podemos verificar se um valor é NULO
SELECT nome
FROM Medicos
WHERE nroa
IS NOT NULL
WHERE
● Podemos também verificar uma enumeração de valores com o operador IN
SELECT nome
FROM Medicos
WHERE especialidade
IN (‘ortopedia’,
‘pediatria’);
Exercícios
21. Recuperar os médicos cujo nome comece com ‘Ma’
22. Recuperar os funcionários cujo nome comece com ‘Ca’
23. Recuperar pacientes cujo CPF é nulo
24. Recuperar pacientes cuja cidade seja Joinville ou Blumenau

More Related Content

What's hot (13)

Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1Sql - Comandos dml do mysql - parte 1
Sql - Comandos dml do mysql - parte 1
 
Principais instruções em sql
Principais instruções em sqlPrincipais instruções em sql
Principais instruções em sql
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Apostila formulas excel
Apostila formulas excelApostila formulas excel
Apostila formulas excel
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Techideias excel avançado v2012
Techideias excel avançado v2012Techideias excel avançado v2012
Techideias excel avançado v2012
 
Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8Fundamentos de SQL - Parte 2 de 8
Fundamentos de SQL - Parte 2 de 8
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8Fundamentos de SQL - Parte 1 de 8
Fundamentos de SQL - Parte 1 de 8
 
Aula 300309
Aula 300309Aula 300309
Aula 300309
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Enums
EnumsEnums
Enums
 

Viewers also liked

Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
julianaveregue
 
Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
Andreita Beltran
 

Viewers also liked (13)

Sub-Consultas Oracle
Sub-Consultas OracleSub-Consultas Oracle
Sub-Consultas Oracle
 
Sistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UCSistema de gestión de base de datos SQL UC
Sistema de gestión de base de datos SQL UC
 
Manual instalacion sql_server
Manual instalacion sql_serverManual instalacion sql_server
Manual instalacion sql_server
 
SQL - Introducción
SQL - IntroducciónSQL - Introducción
SQL - Introducción
 
Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10Banco de Dados II - Unimep/Pronatec - Aula 10
Banco de Dados II - Unimep/Pronatec - Aula 10
 
Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2Banco de Dados II - Unimep/Pronatec - Aula 2
Banco de Dados II - Unimep/Pronatec - Aula 2
 
Sql Server
Sql ServerSql Server
Sql Server
 
Diapositivas sql.
Diapositivas sql.Diapositivas sql.
Diapositivas sql.
 
Planificacion anual educacion fisica 1 basico 2016
Planificacion anual educacion fisica 1 basico 2016Planificacion anual educacion fisica 1 basico 2016
Planificacion anual educacion fisica 1 basico 2016
 
Introducción a Sql
Introducción a SqlIntroducción a Sql
Introducción a Sql
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
 
Junções e subconsultas
Junções e subconsultasJunções e subconsultas
Junções e subconsultas
 
Trabajo de diapositivas sql
Trabajo de diapositivas sqlTrabajo de diapositivas sql
Trabajo de diapositivas sql
 

Similar to Consultas básicas em SQL (9)

Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
SQL.ppt
SQL.pptSQL.ppt
SQL.ppt
 
Comandos basicos da linguagem SQL em banco de dados
Comandos basicos da linguagem SQL em banco de dadosComandos basicos da linguagem SQL em banco de dados
Comandos basicos da linguagem SQL em banco de dados
 
Fundamentos de Banco de Dados Linguagem SQL.pptx
Fundamentos de Banco de Dados Linguagem SQL.pptxFundamentos de Banco de Dados Linguagem SQL.pptx
Fundamentos de Banco de Dados Linguagem SQL.pptx
 
Treinamento de SQL Básico
Treinamento de SQL BásicoTreinamento de SQL Básico
Treinamento de SQL Básico
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
 
08 sql - parte 02
08   sql - parte 0208   sql - parte 02
08 sql - parte 02
 
Banco II - PostgreSQL - Filtros
Banco II - PostgreSQL - FiltrosBanco II - PostgreSQL - Filtros
Banco II - PostgreSQL - Filtros
 
Otimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQLOtimizando suas querys no postgreSQL
Otimizando suas querys no postgreSQL
 

More from Luiz Henrique Zambom Santana

Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
Luiz Henrique Zambom Santana
 

More from Luiz Henrique Zambom Santana (20)

Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
Perspectives on the use of data in Agriculture - Luiz Santana - Leaf Agricult...
 
Apache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with SparkApache Sedona: how to process petabytes of agronomic data with Spark
Apache Sedona: how to process petabytes of agronomic data with Spark
 
De Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipeDe Arquiteto para Gerente: como debugar uma equipe
De Arquiteto para Gerente: como debugar uma equipe
 
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQLVoltDB: as vantagens e os desafios dos banco de dados NewSQL
VoltDB: as vantagens e os desafios dos banco de dados NewSQL
 
IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?IBM Watson, Apache Spark ou TensorFlow?
IBM Watson, Apache Spark ou TensorFlow?
 
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e ElasticsearchUma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
Uma visão sobre Fast-Data: Spark, VoltDB e Elasticsearch
 
Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3Banco de dados nas nuvens - aula 3
Banco de dados nas nuvens - aula 3
 
Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2Banco de dados nas nuvens - aula 2
Banco de dados nas nuvens - aula 2
 
Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1Banco de dados nas nuvens - aula 1
Banco de dados nas nuvens - aula 1
 
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...Workload-Aware RDF Partitioning  and SPARQL Query Caching for Massive RDF Gra...
Workload-Aware RDF Partitioning and SPARQL Query Caching for Massive RDF Gra...
 
A middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQLA middleware for storing massive RDF graphs into NoSQL
A middleware for storing massive RDF graphs into NoSQL
 
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL DatabasesA Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
A Workload-Aware Middleware for Storing Massive RDF Graphs into NoSQL Databases
 
Normalização
NormalizaçãoNormalização
Normalização
 
Processamento em Big Data
Processamento em Big DataProcessamento em Big Data
Processamento em Big Data
 
Seminário de Andamento de Doutorado
Seminário de Andamento de DoutoradoSeminário de Andamento de Doutorado
Seminário de Andamento de Doutorado
 
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
Como modelar, integrar e desenvolver aplicações com múltiplos bancos de dados...
 
Workshop de ELK - EmergiNet
Workshop de ELK - EmergiNetWorkshop de ELK - EmergiNet
Workshop de ELK - EmergiNet
 
Novidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHPNovidades do elasticsearch 2.0 e como usá-lo com PHP
Novidades do elasticsearch 2.0 e como usá-lo com PHP
 
Design of Experiments on Federator Polystore Architecture
Design of Experiments on Federator Polystore ArchitectureDesign of Experiments on Federator Polystore Architecture
Design of Experiments on Federator Polystore Architecture
 
An Approach for RDF-based Semantic Access to NoSQL Repositories
An Approach for RDF-based Semantic Access to NoSQL RepositoriesAn Approach for RDF-based Semantic Access to NoSQL Repositories
An Approach for RDF-based Semantic Access to NoSQL Repositories
 

Consultas básicas em SQL

  • 1. SQL: consultas básicas Luiz Henrique Zambom Santana 15/09/2016
  • 2. 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
  • 4. SQL versus Álgebra relacional SQL Álgebra relacional SELECT projeção FROM produto cartesiano WHERE seleção
  • 5. 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> ] ; Comandos básicos
  • 6. 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)
  • 7. 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
  • 8. SELECT (Projeções) ● Produz um subconjunto vertical com as colunas solicitadas ● Define uma lista de atributos (colunas) das tabelas consultadas ● Exemplo: SELECT nome,idade FROM Medicos
  • 9. SELECT (Projeções) ● Podemos recuperar valores únicos usando o operador DISTINCT SELECT distinct especialidade FROM Medicos
  • 10. Exercícios 1. Recuperar os nomes de todos pacientes 2. Recuperar os nomes de todos médicos 3. Recuperar os nomes de todos funcionários 4. Recuperar todos atributos de todos pacientes 5. Recuperar todos atributos de todas consultas 6. Recuperar sem repetições todas cidades dos pacientes
  • 11. 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
  • 12. Exercícios 7. Recuperar a maior idade entre os pacientes 8. Recuperar a menor idade entre os pacientes 9. Recuperar a média de idade entre os pacientes 10. Contar o número de consultas 11. Recuperar a maior idade, a menor idade e a média de idade entre os funcionários 12. Recuperar o valor total da folha de pagamento dos funcionários
  • 13. 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)
  • 14. WHERE ● O comando equivalente a operação de seleção da álgebra relacional SELECT * FROM Medicos WHERE idade > 40
  • 15. 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 especialidade FROM Medicos WHERE (idade > 40 AND idade <= 52) OR cidade = ‘Blumenau’ AND nome <> ‘Marcia’
  • 16. SELECT e WHERE (Álgebra relacional) πespecialidade (σ(idade> 40 ∧ idade ≤ 52) ∨ cidade = ‘Blumenau’ ∧ nome ≠ ‘Marcia’ (Medicos))
  • 17. WHERE ● Podemos usar o operador BETWEEN para definir um intervalo de valores SELECT data FROM Consultas WHERE data BETWEEN ‘2010/10/11’ AND ‘2010/10/13’
  • 18. Exercícios 13. Recuperar os médicos com idade maior que 50 14. Recuperar os pacientes com idade maior que 30 e menor que 50 15. Recuperar os médicos de São José 16. Recuperar os ambulatórios com capacidade maior que 30 17. Recuperar os pacientes com gripe 18. Recuperar os traumatologistas de Blumenau 19. Recuperar os pacientes de Florianópolis com gripe e idade maior que 30 20. Recuperar as datas das consultas entre entre as 15 e as 18 horas
  • 19. WHERE ● Podemos usar o operador LIKE para definir um padrão de busca SELECT nome FROM Medicos WHERE especialidade LIKE ‘%dia%’
  • 20. WHERE ● Podemos verificar se um valor é NULO SELECT nome FROM Medicos WHERE nroa IS NOT NULL
  • 21. WHERE ● Podemos também verificar uma enumeração de valores com o operador IN SELECT nome FROM Medicos WHERE especialidade IN (‘ortopedia’, ‘pediatria’);
  • 22. Exercícios 21. Recuperar os médicos cujo nome comece com ‘Ma’ 22. Recuperar os funcionários cujo nome comece com ‘Ca’ 23. Recuperar pacientes cujo CPF é nulo 24. Recuperar pacientes cuja cidade seja Joinville ou Blumenau