· 5 years ago · Oct 22, 2020, 01:24 AM
1
2--CREATE Schema rh2;
3--ALTER USER XXXXXXXXXXXXXXX WITH DEFAULT_SCHEMA=rh;
4
5
6--DROP ALL tables of SHEMA RH
7DROP TABLE IF EXISTS Trabalha_em;
8DROP TABLE IF EXISTS Dependente;
9DROP TABLE IF EXISTS Projeto;
10DROP TABLE IF EXISTS Localizacao_Depto;
11ALTER TABLE Departamento DROP CONSTRAINT fk_depto_func;
12DROP TABLE IF EXISTS Empregado;
13DROP TABLE IF EXISTS Departamento;
14
15
16
17
18
19CREATE TABLE Empregado (
20 PrimeiroNome VARCHAR(30) NOT NULL,
21 InicialMeio CHAR(1) NOT NULL,
22 UltimoNome VARCHAR(30) NOT NULL,
23 NumEmpregado NUMERIC(4) NOT NULL,
24 DataNascimento DATE NOT NULL,
25 Endereco VARCHAR(50) NOT NULL,
26 Sexo CHAR(1) NOT NULL,
27 Salario NUMERIC(8,2) NOT NULL,
28 NumSupervisor NUMERIC(4) NULL,
29 NumDepto NUMERIC(2) NOT NULL,
30 CONSTRAINT pk_func PRIMARY KEY (NumEmpregado),
31 CONSTRAINT ck_sexo CHECK (Sexo='M' or Sexo='F')
32);
33
34
35CREATE TABLE Departamento (
36 NomeDepto VARCHAR(30) NOT NULL,
37 NumDepto NUMERIC(2) NOT NULL,
38 NumGerente NUMERIC(4) NOT NULL,
39 DataInicioGerencia date,
40 CONSTRAINT pk_depto PRIMARY KEY (NumDepto),
41 CONSTRAINT uk_nome UNIQUE (NomeDepto)
42);
43
44CREATE TABLE Localizacao_Depto (
45 NumDepto NUMERIC(2) NOT NULL,
46 Localizacao VARCHAR(30) NOT NULL,
47 CONSTRAINT pk_loc_depto PRIMARY KEY (NumDepto, Localizacao)
48);
49
50CREATE TABLE Projeto (
51 NomeProj VARCHAR(30) NOT NULL,
52 NumProj NUMERIC(4) NOT NULL,
53 Localizacao VARCHAR(30) NULL,
54 NumDepto NUMERIC(2) NOT NULL,
55 CONSTRAINT pk_proj PRIMARY KEY (NumProj),
56 CONSTRAINT uk_nomeProj UNIQUE (NomeProj)
57);
58
59CREATE TABLE Trabalha_em (
60 NumEmpregado NUMERIC(4) NOT NULL,
61 NumProj NUMERIC(4) NOT NULL,
62 Horas NUMERIC(6,1) DEFAULT 0,
63 CONSTRAINT pk_trab_em PRIMARY KEY (NumEmpregado, NumProj)
64);
65
66
67CREATE TABLE Dependente (
68 NumEmpregado NUMERIC(4) NOT NULL,
69 NomeDependente VARCHAR(30) NOT NULL,
70 Sexo CHAR(1) NOT NULL,
71 DataAniversario DATE NOT NULL,
72 Parentesco CHAR(15) NULL,
73 CONSTRAINT pk_depend PRIMARY KEY (NumEmpregado, NomeDependente),
74 CONSTRAINT ck_sexo_dep CHECK (Sexo='M' or Sexo='F')
75);
76
77
78
79
80--EMPREGADOS
81INSERT INTO Empregado
82 VALUES ('Joao', 'B', 'Silva', 1, '1965-01-09', 'R. da Bahia, 2557', 'M', 300, 2, 5);
83INSERT INTO Empregado
84 VALUES ('Frank', 'T', 'Santos', 2, '1955-08-12', 'Av. Afonso Pena, 3005', 'M', 4000, 8, 5);
85INSERT INTO Empregado
86 VALUES ('Alice', 'J', 'Pereira', 3, '1968-07-19', 'Av. do Contorno, 2534', 'F', 2500, 4, 4);
87INSERT INTO Empregado
88 VALUES ('Luciene', 'S', 'Ferreira', 4, '1951-06-20', 'R. Iraí, 175', 'F', 430, 8, 4);
89INSERT INTO Empregado
90 VALUES ('Pedro', 'K', 'Magalhães', 5, '1952-09-15', 'Av. Silva Lobo, 2050', 'M', 1200, 2, 5);
91INSERT INTO Empregado
92 VALUES ('Daniela', 'A', 'Oliveira', 6, '1962-07-31', 'R. Ataliba Lago, 250', 'F', 2500, 2, 5);
93INSERT INTO Empregado
94 VALUES ('Mateus', 'V', 'Mascarenhas', 7, '1979-03-29', 'R. Contria, 12', 'M', 2500, 4, 4);
95INSERT INTO Empregado
96 VALUES ('Fábio', 'E', 'Lemos', 8, '1947-11-10', 'R. Chile, 425', 'M', 5500, null, 1);
97
98
99-- DEPARTAMENTOS:::
100INSERT INTO Departamento VALUES ('Pesquisa', 5, 2, '1998-05-22');
101INSERT INTO Departamento VALUES ('Administração', 4, 4, '1995-01-01');
102INSERT INTO Departamento VALUES ('Diretoria', 1, 8, '1998-05-22');
103
104
105-- LOCALIZAÇÃO DEPARTAMENTOS:::
106INSERT INTO Localizacao_Depto VALUES (1, 'Savassi');
107INSERT INTO Localizacao_Depto VALUES (4, 'Centro');
108INSERT INTO Localizacao_Depto VALUES (5, 'Buritis');
109INSERT INTO Localizacao_Depto VALUES (5, 'Pampulha');
110INSERT INTO Localizacao_Depto VALUES (5, 'Contagem');
111
112
113-- PROJETOS
114INSERT INTO Projeto VALUES ('Produto X', 1, 'Buritis', 5);
115INSERT INTO Projeto VALUES ('Produto Y', 2, 'Pampulha', 5);
116INSERT INTO Projeto VALUES ('Produto Z', 3, 'Contagem', 5);
117INSERT INTO Projeto VALUES ('Informatização', 10, 'Centro', 4);
118INSERT INTO Projeto VALUES ('Reorganização', 20, 'Savassi', 1);
119INSERT INTO Projeto VALUES ('NovosBenefícios', 30, 'Centro', 4);
120
121
122--TRABALHA_EM
123INSERT INTO Trabalha_em VALUES (1, 1, 32);
124INSERT INTO Trabalha_em VALUES (1, 2, 7);
125INSERT INTO Trabalha_em VALUES (5, 3, 40);
126INSERT INTO Trabalha_em VALUES (6, 1, 20);
127INSERT INTO Trabalha_em VALUES (6, 2, 20);
128INSERT INTO Trabalha_em VALUES (2, 2, 10);
129INSERT INTO Trabalha_em VALUES (2, 3, 10);
130INSERT INTO Trabalha_em VALUES (2, 10, 10);
131INSERT INTO Trabalha_em VALUES (2, 20, 10);
132INSERT INTO Trabalha_em VALUES (3, 30, 30);
133INSERT INTO Trabalha_em VALUES (3, 10, 10);
134INSERT INTO Trabalha_em VALUES (7, 10, 35);
135INSERT INTO Trabalha_em VALUES (7, 30, 5);
136INSERT INTO Trabalha_em VALUES (4, 30, 20);
137INSERT INTO Trabalha_em VALUES (4, 20, 15);
138INSERT INTO Trabalha_em (NumEmpregado, NumProj) VALUES (8, 20);
139
140
141
142
143--DEPENDENTES
144INSERT INTO Dependente VALUES (2, 'Aline', 'F', '1976-04-03', 'Filha');
145INSERT INTO Dependente VALUES (2, 'Victor', 'M', '1973-10-25', 'Filho');
146INSERT INTO Dependente VALUES (2, 'Joana', 'F', '1998-05-03', 'Cônjuge');
147INSERT INTO Dependente VALUES (4, 'Igor', 'M', '1952-02-29', 'Cônjuge');
148INSERT INTO Dependente VALUES (1, 'Michel', 'M', '1988-01-01', 'Filho');
149INSERT INTO Dependente VALUES (1, 'Aline', 'F', '1998-12-31', 'Filha');
150INSERT INTO Dependente VALUES (1, 'Elizabeth', 'F', '1957-05-05', 'Cônjuge');
151
152
153
154
155
156--CONTRAINTS
157
158ALTER TABLE Empregado
159ADD CONSTRAINT fk_func_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
160
161ALTER TABLE Empregado
162ADD CONSTRAINT fk_func_superv FOREIGN KEY (NumSupervisor) REFERENCES Empregado (NumEmpregado);
163
164ALTER TABLE Departamento
165ADD CONSTRAINT fk_depto_func FOREIGN KEY (NumGerente) REFERENCES Empregado (NumEmpregado);
166
167ALTER TABLE Projeto
168ADD CONSTRAINT fk_proj_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
169
170ALTER TABLE Dependente
171ADD CONSTRAINT fk_dep_func FOREIGN KEY (NumEmpregado) REFERENCES Empregado (NumEmpregado) ON DELETE CASCADE;
172
173ALTER TABLE Trabalha_em
174ADD CONSTRAINT fk_trab_func FOREIGN KEY (NumEmpregado) REFERENCES Empregado (NumEmpregado) ON DELETE CASCADE;
175
176ALTER TABLE Trabalha_em
177ADD CONSTRAINT fk_trab_proj FOREIGN KEY (NumProj) REFERENCES Projeto (NumProj) ON DELETE CASCADE;
178
179ALTER TABLE Localizacao_Depto
180ADD CONSTRAINT fk_loc_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
181
182
183
184