-- 2.1 Altere a coluna estado_civil da tabela pacientes para definir ‘S’ como valor -- padrão ALTER TABLE pacientes modify estado_civil CHAR(1) DEFAULT 'S'; -- 2.2-Remova o valor padrão que introduziu na alínea anterior. ALTER TABLE pacientes modify estado_civil CHAR(1); -- 2.3-Altere a tabela dos seguros para remover a coluna com o estado ativo. ALTER TABLE seguros DROP COLUMN ativo; -- 2.4-Adicione à tabela pacientes uma coluna para introduzir o Número de -- Identificação de Segurança Social (NISS). ALTER TABLE pacientes add NISS VARCHAR(20); -- 2.5-Remova a coluna Número de Identificação de Segurança Social (NISS) da tabela -- pacientes. ALTER TABLE pacientes DROP COLUMN NISS; -- 4.1-Liste todos os médicos que trabalham no Hospital Portucalense SELECT DISTINCT * FROM medicos m INNER JOIN funcionarios f WHERE f.dta_fim IS NULL; -- 4.2-Liste o nome, o sexo e a data de nascimento dos pacientes do Hospital -- Portucalense. SELECT nome, sexo, dta_nascimento FROM pacientes; -- 4.3-Liste as diferentes localidades dos pacientes do Hospital. desc pacientes; SELECT DISTINCT localidade FROM pacientes; -- 4.4- Quais os procedimentos que têm um custo superior a 15€ desc procedimentos; SELECT * FROM procedimentos WHERE preco > '15'; -- 4.5-Liste as consultas onde foram efetuados procedimentos; desc consultas; desc examinacoes; SELECT * FROM consultas c LEFT JOIN examinacoes e ON e.nr_episodio = c.nr_episodio; -- 4.6-Liste as consultas que ainda não foram faturadas; desc consultas; SELECT * FROM consultas WHERE dta_pagamento IS NULL; -- 4.7-Quais as pacientes do sexo feminino casadas? desc pacientes; SELECT * FROM pacientes WHERE estado_civil = 'c'; -- 4.8-Liste os pacientes que não possuem seguro de saúde. desc pacientes; desc seguros; SELECT * FROM pacientes p LEFT JOIN seguros s ON s.nr_apolice = p.nr_apolice; -- 4.9-Quais são as seguradoras que possuem parceria com o hospital que não estão a -- cobrir o seguro de saúde de nenhum paciente? desc seguradoras; desc seguros; desc pacientes; SELECT * FROM seguros s RIGHT JOIN seguradoras seg ON seg.id_seguradora = s.id_seguradora RIGHT JOIN pacientes p ON p.nr_apolice = s.nr_apolice WHERE seg.id_seguradora IS NULL; -- 4.10-Qual é o nome dos medicamentos que não terminam em ‘ol’ nem em ‘na’? SELECT nome FROM medicamentos WHERE nome NOT LIKE "%ol" AND nome NOT LIKE "%na"; -- 4.11-Qual o nome dos procedimentos que possuem um custo entre 20 e 30€? desc procedimentos; SELECT desc_proc FROM procedimentos WHERE preco > 20 AND preco < 30; -- 4.12-Liste as localidades dos pacientes que possuem exatamente 5 caracteres. desc pacientes; SELECT DISTINCT localidade FROM pacientes WHERE length (localidade) = 5; -- 4.13-Quais as especialidades que possuem ‘neuro’ no nome? desc especialidades; SELECT * FROM especialidades WHERE des_especialidade LIKE "%neuro%"; -- 4.14-Quais as especialidades que terminam em ‘logia’? desc especialidades; SELECT * FROM especialidades WHERE des_especialidade LIKE "%logia"; -- 4.15-Liste os telefones dos pacientes que começam por 253 desc pacientes; desc telefones_pacientes; SELECT nr_telefone FROM telefones_pacientes WHERE nr_telefone LIKE "253%"; -- 4.16-Liste os administrativos que se chamam ‘João’ ou ‘Pedro’. desc administrativos; SELECT * FROM administrativos a LEFT JOIN funcionarios f ON a.nr_mec = f.nr_mec WHERE f.nome LIKE "%João%" OR f.nome LIKE "%Pedro%"; -- 4.17-Liste as prescrições por ordem crescente de validade, isto é, da mais antiga -- para a mais recente. desc prescricoes; SELECT * FROM prescricoes ORDER BY data_validade asc; -- 4.18-Retorne para cada estado de agendamento externo (0 – hospital e 1 – externo) -- o número total de agendamentos. desc agendamentos; SELECT externo, COUNT(*) AS total FROM agendamentos GROUP BY externo; -- 4.19-Indique o número total de pacientes para os sexos feminino e masculino. desc pacientes; SELECT sexo, COUNT(sexo) AS total FROM pacientes WHERE sexo <> 'I' GROUP BY sexo; -- 4.20-Liste os procedimentos que possuem um valor acima da média por ordem -- decrescente de preço. desc procedimentos; select * from procedimentos p where p.preco > (select avg(preco) from procedimentos);