forked from vggd18/BD_SQL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcreate_table.sql
More file actions
182 lines (161 loc) · 6.24 KB
/
Copy pathcreate_table.sql
File metadata and controls
182 lines (161 loc) · 6.24 KB
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
-- DROPS
DROP TABLE INSTITUICAO_FINANCEIRA;
DROP TABLE CLIENTE;
DROP TABLE TELEFONE_CLIENTE;
DROP TABLE OBRA;
DROP TABLE FUNCIONARIO;
DROP TABLE TELEFONE_FUNCIONARIO;
DROP TABLE ENDERECO;
DROP TABLE ENGENHEIRO;
DROP TABLE ESPECIALIZACAO;
DROP TABLE PEDREIRO;
DROP TABLE CAPACITACAO;
DROP TABLE FORNECEDOR;
DROP TABLE TELEFONE_FORNECEDOR;
DROP TABLE EQUIPAMENTO;
DROP TABLE FABRICANTE;
DROP TABLE CONTRATA;
DROP TABLE PROJETO;
DROP TABLE REALIZA;
DROP TABLE SOLICITA;
DROP TABLE RAMO_FORNECEDOR;
-- CRIANDO AS TABELAS SQL
CREATE TABLE INSTITUICAO_FINANCEIRA(
CNPJ_INSTITUICAO NUMBER,
NOME VARCHAR2(40) NOT NULL,
SETOR VARCHAR2(8) NOT NULL CHECK (SETOR IN ('PUBLICO', 'PRIVADO')),
CONSTRAINT INSTITUICAO_PK PRIMARY KEY (CNPJ_INSTITUICAO)
);
CREATE TABLE CLIENTE(
CNPJ_CLIENTE NUMBER,
NOME VARCHAR2(40) NOT NULL,
RESPONSAVEL VARCHAR2(40),
CONSTRAINT CLIENTE_PK PRIMARY KEY (CNPJ_CLIENTE)
);
CREATE TABLE TELEFONE_CLIENTE(
CNPJ_CLIENTE NUMBER,
TELEFONE_CLIENTE VARCHAR2(11),
CONSTRAINT TELEFONE_CLIENTE_PK PRIMARY KEY (CNPJ_CLIENTE, TELEFONE_CLIENTE),
CONSTRAINT CNPJ_CLIENTE_FK FOREIGN KEY (CNPJ_CLIENTE) REFERENCES CLIENTE (CNPJ_CLIENTE)
);
CREATE TABLE ENDERECO (
CEP VARCHAR2(8),
BAIRRO VARCHAR2(40) NOT NULL,
RUA VARCHAR2(255) NOT NULL,
CONSTRAINT ENDERECO_PK PRIMARY KEY (CEP)
);
CREATE TABLE OBRA (
CODIGO_OBRA NUMBER,
CNPJ_CLIENTE NUMBER,
DATA_INICIO DATE NOT NULL,
DATA_ENTREGA DATE,
TIPO VARCHAR2(40) NOT NULL,
ORCAMENTO NUMBER NOT NULL,
CEP VARCHAR2(8),
NUMERO_ENDERECO NUMBER,
CONSTRAINT OBRA_PK PRIMARY KEY (CODIGO_OBRA, CNPJ_CLIENTE),
CONSTRAINT CNPJ_CLIENTE1_FK FOREIGN KEY (CNPJ_CLIENTE) REFERENCES CLIENTE (CNPJ_CLIENTE),
CONSTRAINT CEP_OBRA_FK FOREIGN KEY (CEP) REFERENCES ENDERECO (CEP)
);
CREATE TABLE FUNCIONARIO (
CPF_FUNCIONARIO NUMBER,
NOME VARCHAR2(40) NOT NULL,
SEXO VARCHAR2(1) CHECK (SEXO IN ('M', 'F')),
SALARIO NUMBER,
DATA_ADMISSAO DATE NOT NULL,
CEP VARCHAR2(8) NOT NULL,
NUMERO_ENDERECO NUMBER,
CONSTRAINT FUNCIONARIO_PK PRIMARY KEY (CPF_FUNCIONARIO),
CONSTRAINT CEP_FK FOREIGN KEY (CEP) REFERENCES ENDERECO (CEP)
);
CREATE TABLE TELEFONE_FUNCIONARIO (
CPF_FUNCIONARIO NUMBER,
TELEFONE_FUNCIONARIO VARCHAR2(11),
CONSTRAINT TELEFONE_FUNCIONARIO_PK PRIMARY KEY (CPF_FUNCIONARIO, TELEFONE_FUNCIONARIO),
CONSTRAINT CPF_FUNCIONARIO_FK FOREIGN KEY (CPF_FUNCIONARIO) REFERENCES FUNCIONARIO (CPF_FUNCIONARIO)
);
CREATE TABLE ENGENHEIRO (
CPF_ENGENHEIRO NUMBER,
CARGO VARCHAR2(40) NOT NULL,
CPF_SUPERVISOR NUMBER,
CONSTRAINT ENGENHEIRO_PK PRIMARY KEY (CPF_ENGENHEIRO),
CONSTRAINT CPF_ENGENHEIRO_FK FOREIGN KEY (CPF_ENGENHEIRO) REFERENCES FUNCIONARIO (CPF_FUNCIONARIO),
CONSTRAINT CPF_SUPERVISOR_FK FOREIGN KEY (CPF_SUPERVISOR) REFERENCES ENGENHEIRO (CPF_ENGENHEIRO)
);
CREATE TABLE ESPECIALIZACAO (
CPF_ENGENHEIRO NUMBER,
ESPECIALIZACAO VARCHAR2(40),
CONSTRAINT ESPECIALIZACAO_ENGENHEIRO_PK PRIMARY KEY (CPF_ENGENHEIRO, ESPECIALIZACAO),
CONSTRAINT CPF_ENGENHEIRO1_FK FOREIGN KEY (CPF_ENGENHEIRO) REFERENCES ENGENHEIRO (CPF_ENGENHEIRO)
);
CREATE TABLE PEDREIRO (
CPF_PEDREIRO NUMBER,
CONSTRAINT PEDREIRO_PK PRIMARY KEY (CPF_PEDREIRO),
CONSTRAINT CPF_PEDREIRO_FK FOREIGN KEY (CPF_PEDREIRO) REFERENCES FUNCIONARIO (CPF_FUNCIONARIO)
);
CREATE TABLE CAPACITACAO (
CPF_PEDREIRO NUMBER,
CAPACITACAO VARCHAR2(40),
CONSTRAINT CAPACITACAO_PEDREIRO_PK PRIMARY KEY (CPF_PEDREIRO, CAPACITACAO),
CONSTRAINT CPF_PEDREIRO1_FK FOREIGN KEY (CPF_PEDREIRO) REFERENCES PEDREIRO (CPF_PEDREIRO)
);
CREATE TABLE FORNECEDOR (
CNPJ_FORNECEDOR NUMBER,
NOME VARCHAR2(40) NOT NULL,
CEP VARCHAR2(8) NOT NULL,
NUMERO_ENDERECO NUMBER,
CONSTRAINT FORNECEDOR_PK PRIMARY KEY (CNPJ_FORNECEDOR),
CONSTRAINT CEP1_FK FOREIGN KEY (CEP) REFERENCES ENDERECO (CEP)
);
CREATE TABLE TELEFONE_FORNECEDOR(
CNPJ_FORNECEDOR NUMBER,
TELEFONE_FORNECEDOR VARCHAR2(11),
CONSTRAINT TELEFONE_FORNECEDOR_PK PRIMARY KEY (CNPJ_FORNECEDOR, TELEFONE_FORNECEDOR),
CONSTRAINT CNPJ_FORNECEDOR_FK FOREIGN KEY (CNPJ_FORNECEDOR) REFERENCES FORNECEDOR (CNPJ_FORNECEDOR)
);
CREATE TABLE EQUIPAMENTO (
CODIGO_EQUIPAMENTO NUMBER,
NOME VARCHAR2(40) NOT NULL,
TIPO VARCHAR2(40) NOT NULL,
CONSTRAINT EQUIPAMENTO_PK PRIMARY KEY (CODIGO_EQUIPAMENTO)
);
CREATE TABLE FABRICANTE (
CODIGO_EQUIPAMENTO NUMBER,
NOME_FABRICANTE VARCHAR2(40) NOT NULL,
CONSTRAINT FABRICANTE_PK PRIMARY KEY (CODIGO_EQUIPAMENTO),
CONSTRAINT CODIGO_EQUIPAMENTO_FK FOREIGN KEY (CODIGO_EQUIPAMENTO) REFERENCES EQUIPAMENTO (CODIGO_EQUIPAMENTO)
);
CREATE TABLE PROJETO (
CPF_ENGENHEIRO NUMBER,
CODIGO_OBRA NUMBER,
CNPJ_CLIENTE NUMBER,
CNPJ_INSTITUICAO NUMBER,
CONSTRAINT PROJETO_PK PRIMARY KEY (CPF_ENGENHEIRO, CODIGO_OBRA, CNPJ_CLIENTE),
CONSTRAINT ENGENHEIRO_FK FOREIGN KEY (CPF_ENGENHEIRO) REFERENCES ENGENHEIRO (CPF_ENGENHEIRO),
CONSTRAINT OBRA_FK FOREIGN KEY (CODIGO_OBRA, CNPJ_CLIENTE) REFERENCES OBRA (CODIGO_OBRA, CNPJ_CLIENTE),
CONSTRAINT INSTITUICAO_FK FOREIGN KEY (CNPJ_INSTITUICAO) REFERENCES INSTITUICAO_FINANCEIRA (CNPJ_INSTITUICAO)
);
CREATE TABLE REALIZA (
CPF_PEDREIRO NUMBER,
CODIGO_OBRA NUMBER,
CNPJ_CLIENTE NUMBER,
CONSTRAINT REALIZA_PK PRIMARY KEY (CPF_PEDREIRO, CODIGO_OBRA, CNPJ_CLIENTE),
CONSTRAINT PEDREIRO1_FK FOREIGN KEY (CPF_PEDREIRO) REFERENCES PEDREIRO (CPF_PEDREIRO),
CONSTRAINT OBRA1_FK FOREIGN KEY (CODIGO_OBRA, CNPJ_CLIENTE) REFERENCES OBRA (CODIGO_OBRA, CNPJ_CLIENTE)
);
CREATE TABLE SOLICITA (
CNPJ_FORNECEDOR NUMBER,
CODIGO_EQUIPAMENTO NUMBER,
CPF_ENGENHEIRO NUMBER,
DATA_HORA TIMESTAMP,
CONSTRAINT SOLICITA_PK PRIMARY KEY (CNPJ_FORNECEDOR, CODIGO_EQUIPAMENTO, CPF_ENGENHEIRO, DATA_HORA),
CONSTRAINT FORNECEDOR2_FK FOREIGN KEY (CNPJ_FORNECEDOR) REFERENCES FORNECEDOR (CNPJ_FORNECEDOR),
CONSTRAINT EQUIPAMENTO2_FK FOREIGN KEY (CODIGO_EQUIPAMENTO) REFERENCES EQUIPAMENTO (CODIGO_EQUIPAMENTO),
CONSTRAINT ENGENHEIRO2_FK FOREIGN KEY (CPF_ENGENHEIRO) REFERENCES ENGENHEIRO (CPF_ENGENHEIRO)
);
CREATE TABLE RAMO_FORNECEDOR (
CNPJ_FORNECEDOR NUMBER,
RAMO VARCHAR2(40),
CONSTRAINT RAMO_PK PRIMARY KEY (CNPJ_FORNECEDOR, RAMO),
CONSTRAINT FORNECEDOR3_FK FOREIGN KEY (CNPJ_FORNECEDOR) REFERENCES FORNECEDOR (CNPJ_FORNECEDOR)
);