Buscar

Exercício banco de dados resolvido

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

1)	
  buscar	
  os	
  dados	
  dos	
  pacientes	
  que	
  estão	
  com	
  sarampo	
  
1) σdoença	
  =	
  “sarampo”	
  (Paciente)	
  
Select	
  *	
  from	
  Paciente	
  where	
  where	
  doença=”sarampo”;	
  
	
  
2)	
  buscar	
  os	
  dados	
  dos	
  médicos	
  ortopedistas	
  com	
  mais	
  de	
  40	
  anos	
  
2) σespecialidade	
  =	
  “ortopedia”	
  ∧ idade	
  >	
  40	
  (Médico)	
  
Select	
  *	
  from	
  Médico	
  where	
  especialidade	
  =	
  “ortopedia“	
  and	
  idade	
  >	
  40;	
  
	
  
3)	
  buscar	
  os	
  dados	
  das	
  consultas,	
  exceto	
  aquelas	
  marcadas	
  para	
  os	
  médicos	
  com	
  
CRM	
  46	
  e	
  79	
  
3) σcrm	
  <>	
  46	
  ∧	
  	
  crm	
  <>	
  79	
  (Consulta)	
  
Select	
  *	
  from	
  Consulta	
  where	
  crm	
  <>	
  46	
  and	
  crm	
  <>	
  79;	
  
	
  
4)	
  buscar	
  os	
  dados	
  dos	
  ambulatórios	
  do	
  quarto	
  andar	
  que	
  ou	
  tenham	
  capacidade	
  
igual	
  a	
  50	
  ou	
  tenham	
  número	
  superior	
  a	
  10	
  
4) σandar	
  =	
  4	
  ∧	
  (capacidade	
  =	
  50	
  ∨	
  numeroA	
  >	
  10)	
  (Ambulatório)	
  
Select	
  *	
  from	
  Ambulatório	
  where	
  andar	
  =	
  4	
  and	
  (capacidade	
  =	
  50	
  or	
  numeroA	
  >	
  10);	
  
	
  
5)	
  buscar	
  o	
  nome	
  e	
  a	
  especialidade	
  de	
  todos	
  os	
  médicos	
  
5) πnome,	
  specialidade(Médico)	
  
Select	
  nome,	
  especialidade	
  from	
  Médico;	
  
	
  
6)	
  buscar	
  o	
  número	
  dos	
  ambulatórios	
  do	
  terceiro	
  andar	
  
6) πnumeroA	
  (σandar	
  =	
  3	
  (Ambulatório))	
  	
  
Select	
  numeroA	
  from	
  Ambuletório	
  where	
  andar	
  =	
  3;	
  
	
  
7)	
  buscar	
  o	
  CRM	
  dos	
  médicos	
  e	
  as	
  datas	
  das	
  consultas	
  para	
  os	
  pacientes	
  com	
  RG	
  122	
  
e	
  725	
  
7) πcrm,	
  data	
  (σrg	
  =	
  122	
  ∨	
  rg=725	
  (Consulta))	
  	
  
Select	
  crm,	
  data	
  from	
  Consulta	
  where	
  rg	
  =	
  122	
  or	
  rg	
  =	
  725	
  
	
  
8)	
  buscar	
  os	
  números	
  dos	
  ambulatórios,	
  exceto	
  aqueles	
  do	
  segundo	
  e	
  quarto	
  
andares,	
  que	
  suportam	
  mais	
  de	
  50	
  pacientes	
  
8) πnumeroA	
  (σandar	
  <>	
  2∧	
  andar	
  <>	
  4∧	
  capacidade	
  >	
  50	
  (Ambulatório))	
  
Select	
  numeroA	
  from	
  Ambulatório	
  where	
  andar	
  <>	
  2	
  and	
  andar	
  <>	
  4	
  and	
  capacidade	
  
>	
  50	
  
	
  
9)	
  buscar	
  o	
  nome	
  dos	
  médicos	
  que	
  têm	
  consulta	
  marcada	
  e	
  as	
  datas	
  das	
  suas	
  
consultas	
  
9) πMédico.nome,	
  Consulta.data	
  (σMédico.crm	
  =	
  Consulta.crm	
  (Médico ✕	
  Consulta))	
  
Select	
  m.nome,	
  c.data	
  from	
  Médico	
  m	
  join	
  Consulta	
  c	
  on	
  m.crm	
  =	
  c.crm;	
  
Select	
  m.nome,	
  c.data	
  from	
  Médico	
  m,	
  Consulta	
  c	
  where	
  m.crm	
  =	
  c.crm;	
  
	
  
10)	
  buscar	
  o	
  número	
  e	
  a	
  capacidade	
  dos	
  ambulatórios	
  do	
  quinto	
  andar	
  e	
  o	
  nome	
  dos	
  
médicos	
  que	
  atendem	
  neles	
  
10) πAmbulatório.numeroA,	
  Ambulatório.capacidade,	
  medico.nome	
  (σ	
  Ambulatório.andar	
  =	
  5	
  ∧	
  medico.numeroA	
  =	
  
Ambulatório.numeroA	
  (Médico ✕	
  Ambulatório))	
  
Select	
  a.numeroA,	
  a.capacidade	
  	
  
from	
  Médico	
  m	
  join	
  Ambulatório	
  a	
  on	
  m.numeroA	
  =	
  a.numeroA	
  	
  
where	
  a.andar	
  =	
  5;	
  
Select	
  a.numeroA,	
  a.capacidade	
  	
  
from	
  Médico	
  m,	
  Ambulatório	
  a	
  
where	
  m.numeroA	
  =	
  a.numeroA	
  and	
  a.andar	
  =	
  5;	
  
	
  
11)	
  buscar	
  o	
  nome	
  dos	
  médicos	
  e	
  o	
  nome	
  dos	
  seus	
  pacientes	
  com	
  consulta	
  marcada,	
  
assim	
  como	
  a	
  data	
  destas	
  consultas	
  
11) πMédico.nome,	
  Paciente.nome,	
  Consulta.data	
  (σMédico.crm	
  =	
  Consulta.crm	
  ∧	
  Paciente.rg	
  =	
  Consulta.rg	
  	
  
(Médico	
  ✕	
  Paciente	
  ✕	
  Consulta))	
  
Select	
  m.nome	
  as	
  nome_medico,	
  p.nome	
  as	
  nome_paciente,	
  c.data	
  
from	
  Médico	
  m	
  	
  
join	
  Consulta	
  c	
  on	
  c.crm	
  =	
  m.crm	
  
join	
  Paciente	
  p	
  on	
  p.rg	
  =	
  c.rg;	
  
Select	
  m.nome	
  as	
  nome_medico,	
  p.nome	
  as	
  nome_paciente,	
  c.data	
  
from	
  Médico	
  m,	
  	
  Consulta	
  c,	
  Paciente	
  p	
  	
  
where	
  c.crm	
  =	
  m.crm	
  and	
  	
  p.rg	
  =	
  c.rg;	
  
	
  
12)	
  buscar	
  os	
  nomes	
  dos	
  médicos	
  ortopedistas	
  com	
  consultas	
  marcadas	
  para	
  o	
  
período	
  da	
  manhã	
  (7hs-­‐12hs)	
  do	
  dia	
  15/04/03	
  
12) πMédico.nome	
  (σMédico.	
  especialidade	
  =	
  “ortopedista“	
  ∧	
 Consulta.hora	
  ≥	
  7	
  ∧	
 Consulta.hora	
  ≤	
  12	
  ∧	
 
consulta.data	
  =	
  15/04/2013	
 ∧Médico.crm	
  =	
  consulta.crm	
  (Médico	
  ✕	
  Consulta))	
  
Select	
  m.nome	
  
from	
  Médico	
  m	
  	
  
join	
  Consulta	
  c	
  on	
  c.crm	
  =	
  m.crm	
  
where	
  m.especialidade	
  =	
  “ortopedista“	
  	
  
and	
  c.hora	
  >=	
  7	
  and	
  c.hora	
  >=	
  12	
  	
  
and	
  c.data	
  =	
  date	
  (1”5/04/2013);	
  
Select	
  m.nome	
  
from	
  Médico	
  m,	
  Consulta	
  c	
  
where	
  c.crm	
  =	
  m.crm	
  	
  
and	
  m.especialidade	
  =	
  “ortopedista“	
  	
  
and	
  c.hora	
  >=	
  7	
  and	
  c.hora	
  >=	
  12	
  	
  
and	
  c.data	
  =	
  date	
  (1”5/04/2013);	
  
	
  
13)	
  buscar	
  os	
  nomes	
  dos	
  pacientes,	
  com	
  consultas	
  marcadas	
  para	
  os	
  médicos	
  João	
  
Carlos	
  Santos	
  ou	
  Maria	
  Souza,	
  que	
  estão	
  com	
  pneumonia	
  
13) πPaciente.nome	
  (σMédico.crm	
  =	
  Consulta.crm	
  ∧	
  Paciente.rg	
  =	
  Consulta.rg	
  ∧	
 (Médico.	
  nome	
  =	
  “João	
  Carlos	
  dos	
  
Santos“∨Médico.	
  nome	
  =	
  “Maria	
  Souza“)∧Paciente.doença	
  =	
  “pneumonia”	
  (Médico	
  ✕	
  Paciente	
  ✕	
  
Consulta))	
  
Select	
  p.nome	
  
from	
  Médico	
  m	
  	
  
join	
  Consulta	
  c	
  on	
  c.crm	
  =	
  m.crm	
  
join	
  Paciente	
  p	
  on	
  p.rg	
  =	
  c.rg	
  
where	
  (m.nome	
  =	
  “João	
  Carlos	
  Santos”	
  or	
  	
  m.nome	
  =	
  “Maria	
  Souza“	
  )	
  
and	
  p.doença	
  =	
  ”pneumonia”;	
  
Select	
  p.nome	
  
from	
  Médico	
  m,	
  Consulta	
  c,	
  Paciente	
  p	
  	
  
where	
  c.crm	
  =	
  m.crm	
  and	
  p.rg	
  =	
  c.rg	
  
and	
  (m.nome	
  =	
  “João	
  Carlos	
  Santos”	
  or	
  	
  m.nome	
  =	
  “Maria	
  Souza“	
  )	
  
and	
  p.doença	
  =	
  ”pneumonia”;	
  
	
  
14)	
  buscar	
  os	
  nomes	
  dos	
  médicos	
  e	
  pacientes	
  cadastrados	
  no	
  hospital	
  
14) πnome(Médico)	
  U	
  πnome(Paciente)	
  
Select	
  nome	
  from	
  Médico	
  union	
  Select	
  nome	
  from	
  Paciente	
  
	
  
15)	
  buscar	
  os	
  nomes	
  e	
  idade	
  dos	
  médicos,	
  pacientes	
  e	
  funcionários	
  que	
  residem	
  em	
  
Florianópolis	
  
15) πnome,	
  idade(σcidade	
  =	
  “Florianópolis	
  (Médico))	
  U	
  	
  πnome,	
  idade	
  (σcidade	
  =	
  “Florianópolis	
  
(Paciente))	
  U	
  πnome,	
  idade	
  (σcidade	
  =	
  “Florianópolis	
  (Funcionário))	
  
Select	
  nome,	
  idade	
  from	
  Médico	
  where	
  cidade	
  =	
  “Florianópolis“	
  
UnionSelect	
  nome,	
  idade	
  from	
  Paciente	
  where	
  cidade	
  =	
  “Florianópolis“	
  
Union	
  Select	
  nome,	
  idade	
  from	
  Funcionário	
  where	
  cidade	
  =	
  “Florianópolis“	
  
	
  
16)	
  buscar	
  os	
  nomes	
  e	
  RGs	
  dos	
  funcionários	
  que	
  recebem	
  salários	
  abaixo	
  de	
  R$	
  
300,00	
  e	
  que	
  não	
  estão	
  internados	
  como	
  pacientes	
  
16) πnome,	
  rg(σsalário	
  <	
  300	
  (Funcionário))	
  -­‐	
  πnome,	
  rg(Paciente)	
  
Select	
  nome,	
  rg	
  from	
  Funcionário	
  where	
  salario	
  <	
  300	
  
Minus	
  select	
  nome,	
  rg	
  from	
  Paciente;	
  
	
  
17)	
  buscar	
  os	
  números	
  dos	
  ambulatórios	
  onde	
  nenhum	
  médico	
  dá	
  atendimento	
  
17) πnumeroA	
  (Ambulatório)	
  -­‐	
  πnumeroA	
  (Médico)	
  
Select	
  numeroA	
  from	
  Ambulatório	
  
Minus	
  Select	
  numeroA	
  from	
  Médico;	
  
	
  
18)	
  buscar	
  os	
  nomes	
  e	
  RGs	
  dos	
  funcionários	
  que	
  estão	
  internados	
  como	
  pacientes	
  
18) πnome,	
  rg(Funcionário)	
  ∩	
  	
  πnome,	
  rg(Paciente)	
  
Select	
  nome,	
  rg	
  from	
  Funcionário	
  	
  
Intersect	
  Select	
  nome,	
  rg	
  from	
  Paciente;

Outros materiais