-
Notifications
You must be signed in to change notification settings - Fork 0
/
SQLQuery_11.sql
145 lines (94 loc) · 2.89 KB
/
SQLQuery_11.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
create database ex11
go
use ex11
create table plano(
codigo int not null,
nome varchar(30) not null,
telefone varchar(8) not null
primary key(codigo)
)
go
create table paciente(
cpf varchar(11) not null,
nome varchar(30) not null,
rua varchar (40) not null,
numero int not null,
bairro varchar(20) not null,
telefone varchar(8) not null,
codigo_plano int not null
primary key(cpf)
foreign key(codigo_plano) references plano (codigo)
)
go
create table medico(
codigo int not null,
nome varchar(20) not null,
especialidade varchar(30) not null,
codigo_plano int not null
primary key(codigo)
foreign key(codigo_plano) references plano(codigo)
)
go
create table consulta(
codigo_medico int not null,
cpf_paciente varchar(11) not null,
data_consulta date not null,
hora time not null,
diagnostico varchar(50) not null
primary key(codigo_medico, cpf_paciente, data_consulta)
foreign key(codigo_medico)references medico(codigo),
foreign key(cpf_paciente) references paciente(cpf)
)
-- Nome e especialidade dos médicos da Amil
select m.nome, m.especialidade
from medico m, plano p
where m.codigo_plano = p.codigo
and p.nome like 'Amil'
-- Nome, Endereço concatenado, Telefone e Nome do Plano de Saúde de todos os pacientes
select p.nome, p.rua + ' - '+ CONVERT(char(3), p.numero) + ' '+ p.bairro as endereco_completo,
pl.nome
from paciente p, plano pl
where p.codigo_plano = pl.codigo
-- Telefone do Plano de Saúde de Ana Júlia
select telefone
from plano
where codigo in (
select codigo_plano
from paciente
where nome like 'Ana%'
)
-- Plano de Saúde que não tem pacientes cadastrados
select pl.nome
from plano pl left outer join paciente p
on pl.codigo = p.codigo_plano
where p.cpf is null
-- Planos de Saúde que não tem médicos cadastrados
select pl.nome
from plano pl left outer join medico m
on pl.codigo = m.codigo_plano
where m.codigo is null
-- Data da consulta, Hora da consulta, nome do médico, nome do paciente e diagnóstico de todas as consultas
select c.data_consulta, c.hora, m.nome, p.nome, c.diagnostico
from consulta c, medico m, paciente p
where c.codigo_medico = m.codigo
and p.cpf = c.cpf_paciente
-- Nome do médico, data e hora de consulta e diagnóstico de José Lima
select m.nome, c.data_consulta, c.hora, c.diagnostico
from medico m, consulta c, paciente p
where m.codigo = c.codigo_medico
and c.cpf_paciente = p.cpf
and p.nome = 'José Lima'
-- Alterar o nome de João Carlos para João Carlos da Silva
update paciente
set nome = 'João Carlos da Silva'
where nome = 'João Carlos'
select*from paciente
-- Deletar o plano de Saúde Unimed
delete plano where nome = 'Unimed'
select*from plano
-- Renomear a coluna Rua da tabela Paciente para Logradouro
sp_rename 'paciente.rua', 'logradouro', 'COLUMN'
select*from paciente
-- Inserir uma coluna, na tabela Paciente, de nome idade e inserir os valores (28,39,14 e 33) respectivamente
alter table paciente
add idade int default(null)