You are on page 1of 3

Resposta do Exerccio de SQL

1 Hospital (cdigo, nome) Medico (cdigo, nome, CRM, especialidade, codHospital) Paciente (cdigo, nome, sexo, dataNasc) Consulta (codMedico, codPaciente, dataConsulta, HoraConsulta, Preo)

2 Create database Convenios; use Convenios; create table Hospital ( codigo int not null auto_increment primary key, nome varchar (40) ); create table Medico ( codigo int not null auto_increment primary key, nome varchar(40), CRM varchar(6), especialidade varchar(15), codhospital int, foreign key (codhospital) references Hospital(codigo) ); create table Paciente ( codigo int not null auto_increment primary key, nome varchar(40), sexo char(1), dataNasc date ); create table Consulta ( codMedico int not null, codPaciente int not null, dataConsulta date not null, horaConsulta time, preco float(5,2), primary key (codMedico, codPaciente, dataConsulta), foreign key (codMedico) references Medico (codigo), foreign key (codPaciente) references Paciente(codigo) ); 3 a) insert into Hospital values (null, "Irm Dulce"); insert into Hospital values (null, "Sagrada Familia"); insert into Hospital values (null, "Joo XXIII"); insert into Hospital values (null, "Imaculada Conceio"); insert into Hospital values (null, "So Lucas");

insert into Medico values (null, "Matheus Santos", "123456", "Ortopedista", 3), (null, "Joana Pereira Gusmao", "756890", "Cardiologista", 2), (null, "Pedro Fonseca Alves", "890065", "Ortopedista", 3), (null, "Maria Alves Montes", "776120", "Nutricionista", 4), (null, "Orlando Silveira", "098765", "Clinico Geral", 1), (null, "Carlos da Silva", "789000", "Pediatra", 2);

insert into Paciente values (null, "Ana Maria Viana", 'F', '1976-06-10'), (null, "Maria da Silva", 'F', '2001-0623'), (null, "Carmem Pereira", 'F', '2006-05-01'), (null, "Hugo Jos Oliveira", 'M', '1971-02-17'), (null, "Ana Vera Maia da Silva", 'F', '1956-05-20'), (null, "Lucas Ferreira", 'M', '1984-03-19');

insert into Consulta values (1, 3, '2011-04-03', '14:00', 80.00), (2, 1, '2006-07-10', '8:00', 95.00), (1, 2, '2011-04-09', '15:30', 80.00), (5, 3, '2011-08-09', '15:00', 110.00), (3, 4, '2006-10-18', '9:30', 80.00), (5, 4, '2010-12-26', '18:00', 70.00), (1, 5, '2011-09-09', '17:00', 80.00);

b) select * from Hospital; c) alter table Hospital add Localizacao varchar(30);

d) update Consulta set preco = 120 where codMedico = (select codigo from Medico where nome = "Matheus Santos");
e) select distinct especialidade Especialidades Atendidas from Medico order by especialidade; f) select nome, CRM from Medico where especialidade in (Ortopedista,Cardiologista, Clinico Geral); g) Select upper(nome) Nome Paciente, YEAR(dataNasc) Ano Nascimento, MonthNAME(dataNasc) Ms Nascimento From Paciente Where sexo = 'F'; h) select c.codpaciente, p.nome, m.nome from Paciente p, Medico m, Consulta c where (c.codMedico = m.codigo) and (c.codPaciente = p.codigo) and (YEAR(c.dataConsulta)=2006); i) Select * from Hospital where (nome like S%) and (localizacao is null); j) select c.codigo, p.nome, count(*) Num de Consultas from Paciente p, Consulta c where (c.codPaciente)=(p.codigo) Group by c.codpaciente; l) select count(*) Total de Ortopedistas from Medico where especialidade = Ortopedista;

m) select m.nome, h.nome from Hospital h, Medico m where (m.codHospital = h.codigo) order by m.nome; n) select m.nome, p.nome, c.dataConsulta, c.horaConsulta from Medico m, Paciente p, Consulta c where (c.codMedico = m.codigo) and (c.codPaciente = p.codigo) and (p.sexo = 'F'); o) select codigo, nome Nome from Paciente where (nome like '%s%') or (nome like '%v%'); p) select nome Nome, dataNasc Data Nascimento from Paciente order by nome asc, dataNasc desc; q) select sum(preco) Valor_Arrecadado from Consulta where YEAR(dataConsulta) = '2011'; r) select sum(preco) Valor Arrecadado from Consulta where codMedico = (select codigo from Medico where nome = Orlando Silveira); s) select p.nome, m.nome from Paciente p, Medico m, Consulta c where (c.codMedico = m.codigo) and (c.codPaciente = p.codigo) and (c.preco between 90 and 120); t) delete from Paciente where YEAR(dataNasc) between '1950' and '1959'; u) select m.nome, h.nome from Medico m, Hospital h, Consulta c where (c.codMedico=m.codigo) and (m.codHospital=h.codigo) and (MONTH(dataConsulta)=4) and YEAR(dataConsulta) = 2011; v) select count (*) Total_Pacientes from Paciente;

You might also like