-
Notifications
You must be signed in to change notification settings - Fork 0
/
Hospital.sql
93 lines (75 loc) · 2.5 KB
/
Hospital.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
--> cria��o da tabela m�dico
CREATE TABLE MEDICO(
MED_CODIGO INTEGER, /*PRIMARY KEY - podiamos ter criado dessa forma desde o come�o*/
MED_NOME VARCHAR2(100)
);
CREATE TABLE PACIENTE(
PAC_CODIGO INTEGER,
PAC_NOME VARCHAR2(100),
CONSTRAINT PAC_CODIGO PRIMARY KEY(PAC_CODIGO)
);
CREATE TABLE MEDICAMENTO(
MD_CODIGO INTEGER,
MD_NOME VARCHAR2(100),
CONSTRAINT MD_CODIGO PRIMARY KEY(MD_CODIGO)
);
CREATE TABLE CONSULTA(
CON_CODIGO INTEGER,
DATAS DATE,
PAC_CODIGO INTEGER,
MD_CODIGO INTEGER,
CONSTRAINT CON_CODIGO PRIMARY KEY(CON_CODIGO),
FOREIGN KEY (PAC_CODIGO) REFERENCES PACIENTE(PAC_CODIGO),
FOREIGN KEY (MD_CODIGO) REFERENCES MEDICAMENTO(MD_CODIGO)
);
CREATE TABLE PRESCRICAO(
POSOLOGIA VARCHAR2(200),
CON_CODIGO INTEGER,
MD_CODIGO INTEGER,
FOREIGN KEY (CON_CODIGO) REFERENCES CONSULTA(CON_CODIGO),
FOREIGN KEY (MD_CODIGO) REFERENCES MEDICAMENTO(MD_CODIGO)
);
ALTER TABLE MEDICO
ADD CONSTRAINT PK_MEDICO
PRIMARY KEY(MED_CODIGO);
ALTER TABLE MEDICO
ADD STATUS CHAR(1)NULL;
DESC MEDICO; /*mostra a estrutura da tabela*/
DESC PACIENTE;
DESC MEDICAMENTO;
DESC CONSULTA;
DESC PRESCRICAO;
SELECT * FROM MEDICO;
INSERT INTO MEDICO VALUES(1, 'Vinicius');
INSERT INTO MEDICO (MED_CODIGO, MED_NOME)VALUES(2, 'Jorge');
INSERT INTO MEDICO (MED_NOME, MED_CODIGO)VALUES('Pedro', 3);
INSERT INTO MEDICO VALUES(4, 'Natan'); /*Relatório de erros - restrição exclusiva (RM86922.PK_MEDICO) violada*/
DELETE MEDICO WHERE MED_NOME = 'Natan';
UPDATE MEDICO SET STATUS = 'A' WHERE MED_CODIGO = 1;
UPDATE MEDICO SET STATUS = 'A' WHERE MED_CODIGO = 2;
ALTER TABLE MEDICO ADD E_MAIL VARCHAR2(100)NULL;
ALTER TABLE MEDICO ADD TESTE CHAR(10)NULL;
--> Exclui uma coluna
ALTER TABLE MEDICO DROP COLUMN E_MAIL;
--> Exclui duas ou mais colunas
ALTER TABLE MEDICO DROP (TESTE, E_MAIL);
SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'MYGOD';
--> FORMAS DE SE CRIAR UMA PRIMARY KEY
DROP TABLE MYGOD;
CREATE TABLE MYGOD(
ID_MYGOD NUMBER,
DESCRICAO VARCHAR2(100),
CONSTRAINT PK_MYGOD PRIMARY KEY(ID_MYGOD)
);
SELECT * FROM MYGOD;
INSERT INTO MYGOD VALUES (1, 'XXXXXXX');
INSERT INTO MYGOD VALUES (1, 'XXXXXXX');
DROP TABLE CONSULTA;
DROP TABLE MEDICO;
DROP TABLE PACIENTE;
DROP TABLE MEDICAMENTO;
DROP TABLE PRESCRICAO;
-- DESFAZ COMANDOS DML ANTES DO COMMIT
ROLLBACK;
-- EFETIVA/SALVA OS INSERT, UPDATE, DELETE
COMMIT;