Vous êtes sur la page 1sur 10

SQL Consultas Bsicas

Consulta a dados de uma tabela


select lista_atributos from tabela [where condio]

Mapeamento para a lgebra relacional


select a1, ..., an from t where c

a1, ..., an ( c (t))

Consulta a uma Tabela


Exemplos
lgebra
(Pacientes)

SQL
Select * From Pacientes Select * From Pacientes Where idade > 18 Select CPF, nome From Pacientes

idade> 18 (Pacientes) CPF, nome (Pacientes)

Select CPF, nome CPF, nome ( idade> 18 (Pacientes)) From Pacientes Where idade > 18

Comando SELECT
Facilidades para projeo de informaes
eliminao de duplicatas
tabela coleo

retorno de valores calculados


uso de operadores aritmticos (+,-,*,/)

invocao de funes de agregao


COUNT (contador de ocorrncias [de um atributo]) MAX / MIN (valores mximo / mnimo de um atributo) SUM (somador de valores de um atributo) AVG (mdia de valores de um atributo)

Comando SELECT
Eliminao de duplicatas
select [distinct] lista_atributos ...

Exemplo
buscar as especialidades dos mdicos
select distinct especialidade from Mdicos

Comando SELECT
Retorno de valores calculados - Exemplos
quantos grupos de 5 leitos podem ser formados em cada ambulatrio?
select nroa, capacidade/5 as grupos5 from Ambulatrios (nroa, grupo5)( nroa, capacidade/5(Ambulatrios))

qual o salrio lquido dos funcionrios (desc. 10%)?


select CPF, salrio (salrio * 0.1) as lquido from Funcionrios

Comando SELECT
Funo COUNT - Exemplos
informar o total de mdicos ortopedistas
select count(*) as TotalOrtopedistas from Mdicos where especialidade = ortopedia

total de mdicos que atendem em ambulatrios


select count(nroa) as Total from Mdicos no conta nulos

Comando SELECT
Funo SUM - Exemplo
informar a capacidade total dos ambulatrios do primeiro andar
select sum(capacidade) as TotalAndar1 from Ambulatrios where andar = 1

Comando SELECT
Funo AVG - Exemplo
informar a mdia de idade dos pacientes de Florianpolis
select avg(idade) as MediaPacFpolis from Pacientes where cidade = Florianpolis

Comando SELECT
Funes MAX / MIN - Exemplo
informar o menor e o maior salrio pagos aos Funcionrios do departamento pessoal com mais de 50 anos
select min(salrio) as mnimo, max(salrio) as mximo from Funcionrios where depto = Pessoal and idade > 50

Comando SELECT
Funes de Agregao com distinct
valores duplicados no so computados exemplos
select count(distinct especialidade) from Mdicos select avg(distinct salrio) from Funcionrios

Comando SELECT
Observao sobre as funes de agregao
no podem ser combinadas a outros atributos da tabela no resultado da consulta
select andar, COUNT (andar) from Ambulatrios

Clusula WHERE
Facilidades para seleo de dados
busca por padres
clusula [NOT] LIKE

teste de existncia de valores nulos


clusula IS [NOT] NULL

busca por intervalos de valores


clusula [NOT] BETWEEN valor1 AND valor2

teste de pertinncia elemento-conjunto


clusula [NOT] IN

Clusula WHERE
Busca por padres
where atributo like padro
% : casa com qq cadeia de caracteres _ : casa com um nico caractere [a-f] : casa com qq caractere entre a e f (SQL-Server)

Exemplos
buscar CPF e nome dos mdicos com inicial M
select CPF, nome from Mdicos where nome like M%

Clusula WHERE
Exemplos
buscar nomes de pacientes cujo CPF termina com 20000 ou 30000
select nome from Pacientes where CPF like '%20000 or CPF like '%30000

Observaes
em alguns dialetos SQL, * usado invs de % no possvel testar padres em atributos datetime (SQL-Server)

Clusula WHERE
Teste de valores nulos - Exemplo
buscar o CPF e o nome dos mdicos que no do atendimento em ambulatrios
select CPF, nome from Mdicos where nroa is null

Clusula WHERE
Busca por intervalos de valores - Exemplo
buscar os dados das consultas marcadas para o perodo da tarde
select * from Consultas where hora between 14:00 and 18:00

Clusula WHERE
Teste de pertinncia elemento-conjunto Exemplo
buscar os dados das mdicos ortopedistas, traumatologistas e cardiologistas de Florianpolis
select * from Mdicos where cidade = Florianpolis and especialidade in (cardiologia, traumatologia, cardiologia)

Unio de Tabelas
Implementa a unio da lgebra relacional
exige tabelas compatveis

lgebra

SQL

relao1 relao2 consultaSQL1 union consultaSQL2 Exemplo


buscar o nome e o CPF dos mdicos e pacientes select CPF, nome from Mdicos union select CPF, nome from Pacientes

Realizar as seguintes consultas no BD:

Exerccios

1) Buscar o nome e o CPF dos mdicos com menos de 40 anos ou com especialidade diferente de traumatologia 2) Buscar todos os dados das consultas marcadas no perodo da tarde aps o dia 19/06/2006 3) Buscar o nome e a idade dos pacientes que no residem em Florianpolis 4) Buscar a hora das consultas marcadas antes do dia 14/06/2006 e depois do dia 20/06/2006 5) Buscar o nome e a idade (em meses) dos pacientes 6) Em quais cidades residem os funcionrios? 7) Qual o menor e o maior salrio dos funcionrios da Florianpolis? 10) Qual o horrio da ltima consulta marcada para o dia 13/06/2006? 11) Qual a mdia de idade dos mdicos e o total de ambulatrios atendidos por eles? 12) Buscar o cdigo, o nome e o salrio lquido dos funcionrios. O salrio lquido obtido pela diferena entre o salrio cadastrado menos 20% deste mesmo salrio 13) Buscar o nome dos funcionrios que terminam com a letra a 14) Buscar o nome e CPF dos funcionrios que no possuam a seqncia 00000 em seus CPFs 15) Buscar o nome e a especialidade dos mdicos cuja segunda e a ltima letra de seus nomes seja a letra o 16) Buscar os cdigos e nomes dos pacientes com mais de 25 anos que esto com tendinite, fratura, gripe e sarampo

10

Vous aimerez peut-être aussi