Escolar Documentos
Profissional Documentos
Cultura Documentos
SQL
Select * From Pacientes Select * From Pacientes Where idade > 18 Select CPF, nome From 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
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))
Comando SELECT
Funo COUNT - Exemplos
informar o total de mdicos ortopedistas
select count(*) as TotalOrtopedistas from Mdicos where especialidade = ortopedia
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
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
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