· 9 years ago · Jan 20, 2017, 01:24 PM
1CREATE DATABASE IF NOT EXISTS EMPRESA;
2
3USE EMPRESA;
4
5CREATE TABLE IF NOT EXISTS RA95372_EMPREGADO (
6 SSN CHAR(9) NOT NULL,
7 PNOME VARCHAR(15) NOT NULL,
8 UNOME VARCHAR(15) NOT NULL,
9 SEXO CHAR,
10 DNASC DATE,
11 ECIDADE VARCHAR(30),
12 SUPERSSN CHAR(9),
13 DNO INT NOT NULL,
14PRIMARY KEY(SSN));
15
16CREATE TABLE IF NOT EXISTS RA95372_DEPARTAMENTO (
17 DNUMERO INT NOT NULL,
18 DNOME VARCHAR(15) NOT NULL,
19 DCIDADE VARCHAR(15) NOT NULL,
20 GERSSN CHAR(9) NOT NULL,
21 GERDATAINICIO DATE,
22PRIMARY KEY(DNUMERO),
23UNIQUE(DNOME));
24
25CREATE TABLE IF NOT EXISTS RA95372_PROJETO(
26 PNUMERO INT NOT NULL,
27 PNOME VARCHAR(15) NOT NULL,
28 PCIDADE VARCHAR(15),
29 DNUM INT NOT NULL,
30PRIMARY KEY(PNUMERO));
31
32CREATE TABLE IF NOT EXISTS RA95372_TRABALHA_EM (
33 ESSN CHAR(9) NOT NULL,
34 PNO INT NOT NULL,
35 HORAS DECIMAL(3,1) NOT NULL,
36PRIMARY KEY(ESSN,PNO));
37
38CREATE TABLE IF NOT EXISTS RA95372_DEPENDENTE (
39 ESSN CHAR(9) NOT NULL,
40 NUMDEP INT NOT NULL,
41 NOMEDEP VARCHAR(15) NOT NULL,
42 SEXO CHAR(1),
43 DATANASC DATE,
44 PARENTESCO VARCHAR(6),
45PRIMARY KEY(ESSN,NOMEDEP));
46
47INSERT INTO RA95372_DEPARTAMENTO VALUES (1, 'DIN', 'MARINGA', '1', '1998-05-22');
48INSERT INTO RA95372_DEPARTAMENTO VALUES (2, 'DINF', 'LONDRINA', '6', '2003-05-15');
49INSERT INTO RA95372_DEPARTAMENTO VALUES (3, 'INF', 'CURITIBA', '11', '1989-09-19');
50
51INSERT INTO RA95372_EMPREGADO VALUES ('1', 'PEDRO', 'ANTUNES', 'M', '1969-03-22', 'MARINGA', NULL, 1);
52INSERT INTO RA95372_EMPREGADO VALUES ('6', 'JOAO', 'DIAS', 'M', '1951-04-23', 'LONDRINA', NULL, 2);
53INSERT INTO RA95372_EMPREGADO VALUES ('11', 'MARGARETE', 'SANTOS', 'F', '1968-01-02', 'CURITIBA', NULL, 3);
54
55ALTER TABLE RA95372_EMPREGADO
56ADD FOREIGN KEY(SUPERSSN) REFERENCES RA95372_EMPREGADO(SSN);
57
58ALTER TABLE RA95372_EMPREGADO
59ADD FOREIGN KEY(DNO) REFERENCES RA95372_DEPARTAMENTO(DNUMERO);
60
61ALTER TABLE RA95372_DEPARTAMENTO
62ADD FOREIGN KEY(GERSSN) REFERENCES RA95372_EMPREGADO (SSN);
63
64ALTER TABLE RA95372_PROJETO
65ADD FOREIGN KEY(DNUM) REFERENCES RA95372_DEPARTAMENTO(DNUMERO);
66
67ALTER TABLE RA95372_TRABALHA_EM
68ADD FOREIGN KEY(ESSN) REFERENCES RA95372_EMPREGADO(SSN);
69
70ALTER TABLE RA95372_TRABALHA_EM
71ADD FOREIGN KEY(PNO) REFERENCES RA95372_PROJETO(PNUMERO);
72
73ALTER TABLE RA95372_DEPENDENTE
74ADD FOREIGN KEY(ESSN) REFERENCES RA95372_EMPREGADO(SSN);
75
76INSERT INTO RA95372_EMPREGADO VALUES ('2', 'AFONSO', 'SANTOS', 'M', '1961-07-16', 'MARINGA', '1', 1);
77INSERT INTO RA95372_EMPREGADO VALUES ('3', 'EMILLY', 'CARVALHO', 'F', '1978-09-07', 'MARINGA', '1', 1);
78INSERT INTO RA95372_EMPREGADO VALUES ('4', 'JULIAN', 'RIBEIRO', 'M', '1995-03-07', 'MARINGA', '1', 1);
79INSERT INTO RA95372_EMPREGADO VALUES ('5', 'ARTHUR', 'DIAS', 'M', '1937-08-19', 'MARINGA', '1', 1);
80
81INSERT INTO RA95372_EMPREGADO VALUES ('7', 'MARINA', 'CASTRO', 'F', '1964-08-05', 'LONDRINA', '6', 2);
82INSERT INTO RA95372_EMPREGADO VALUES ('8', 'VICTOR', 'PINTO', 'M', '1990-07-01', 'LONDRINA', '6', 2);
83INSERT INTO RA95372_EMPREGADO VALUES ('9', 'VITORIA', 'LIMA', 'F', '1961-06-22', 'LONDRINA', '6', 2);
84INSERT INTO RA95372_EMPREGADO VALUES ('10', 'ANNA', 'CORREIA', 'F', '1970-06-30', 'LONDRINA', '6', 2);
85
86INSERT INTO RA95372_EMPREGADO VALUES ('12', 'NICOLAS', 'SANTOS', 'M', '1974-08-20', 'CURITIBA', '11', 3);
87INSERT INTO RA95372_EMPREGADO VALUES ('13', 'JULIA', 'ARAUJO', 'F', '1973-04-14', 'CURITIBA', '11', 3);
88INSERT INTO RA95372_EMPREGADO VALUES ('14', 'CARLA', 'SOUZA', 'F', '1962-06-19', 'CURITIBA', '11', 3);
89INSERT INTO RA95372_EMPREGADO VALUES ('15', 'GABRIELLY', 'RIBEIRO', 'F', '1971-06-21', 'CURITIBA', '11', 3);
90
91INSERT INTO RA95372_PROJETO VALUES (1, 'PROJETO Y', 'MARINGA', 1);
92INSERT INTO RA95372_PROJETO VALUES (2, 'PROJETO X', 'MARINGA', 1);
93INSERT INTO RA95372_PROJETO VALUES (3, 'PROJETO XXX', 'LONDRINA', 2);
94INSERT INTO RA95372_PROJETO VALUES (4, 'PROJETO DE GENTE', 'CURITIBA', 3);
95INSERT INTO RA95372_PROJETO VALUES (5, 'PROJETO W', 'CURITIBA', 3);
96INSERT INTO RA95372_PROJETO VALUES (6, 'PROJETO T', 'LONDRINA', 2);
97INSERT INTO RA95372_PROJETO VALUES (7, 'PROJETO 51', 'LONDRINA', 2);
98INSERT INTO RA95372_PROJETO VALUES (8, 'PROJETO A', 'CURITIBA', 3);
99INSERT INTO RA95372_PROJETO VALUES (9, 'PROJETO WX', 'CURITIBA', 3);
100INSERT INTO RA95372_PROJETO VALUES (10, 'PROJETO TX', 'LONDRINA', 2);
101
102INSERT INTO RA95372_TRABALHA_EM VALUES ('1', 1, 4.1);
103INSERT INTO RA95372_TRABALHA_EM VALUES ('1', 2, 16.0);
104INSERT INTO RA95372_TRABALHA_EM VALUES ('1', 3, 5.0);
105INSERT INTO RA95372_TRABALHA_EM VALUES ('2', 1, 28.2);
106INSERT INTO RA95372_TRABALHA_EM VALUES ('2', 2, 32.2);
107INSERT INTO RA95372_TRABALHA_EM VALUES ('3', 1, 7.4);
108INSERT INTO RA95372_TRABALHA_EM VALUES ('3', 2, 9.3);
109INSERT INTO RA95372_TRABALHA_EM VALUES ('4', 1, 9.0);
110INSERT INTO RA95372_TRABALHA_EM VALUES ('4', 2, 16.0);
111INSERT INTO RA95372_TRABALHA_EM VALUES ('4', 6, 3.0);
112INSERT INTO RA95372_TRABALHA_EM VALUES ('5', 2, 31.0);
113INSERT INTO RA95372_TRABALHA_EM VALUES ('6', 6, 30.0);
114INSERT INTO RA95372_TRABALHA_EM VALUES ('7', 3, 23.2);
115INSERT INTO RA95372_TRABALHA_EM VALUES ('7', 6, 19.2);
116INSERT INTO RA95372_TRABALHA_EM VALUES ('8', 6, 11.3);
117INSERT INTO RA95372_TRABALHA_EM VALUES ('9', 3, 24.4);
118INSERT INTO RA95372_TRABALHA_EM VALUES ('9', 6, 8.5);
119INSERT INTO RA95372_TRABALHA_EM VALUES ('10', 3, 7.3);
120INSERT INTO RA95372_TRABALHA_EM VALUES ('10', 6, 11.0);
121INSERT INTO RA95372_TRABALHA_EM VALUES ('11', 5, 2.0);
122INSERT INTO RA95372_TRABALHA_EM VALUES ('12', 5, 21.3);
123INSERT INTO RA95372_TRABALHA_EM VALUES ('13', 1, 33.4);
124INSERT INTO RA95372_TRABALHA_EM VALUES ('13', 4, 19.7);
125INSERT INTO RA95372_TRABALHA_EM VALUES ('14', 5, 18.9);
126INSERT INTO RA95372_TRABALHA_EM VALUES ('15', 5, 12.8);
127INSERT INTO RA95372_TRABALHA_EM VALUES ('15', 6, 1.9);
128
129SELECT PNOME, UNOME, ECIDADE
130FROM RA95372_EMPREGADO
131WHERE DNO IN(
132 SELECT DNUMERO
133 WHERE RA95372_DEPARTAMENTO IN(
134 SELECT SSN FROM RA95372_EMPREGADO WHERE PNOME = 'PEDRO' AND UNOME = 'ANTUNES'
135 )
136 );
137
138USE EMPRESA;
139
140SELECT PNOME, UNOME, ECIDADE
141FROM RA95372_EMPREGADO
142WHERE DNO IN(
143 SELECT DNUMERO
144 FROM RA95372_DEPARTAMENTO
145 WHERE GERSSN IN(
146 SELECT SSN
147 FROM RA95372_EMPREGADO
148 WHERE PNOME = 'PEDRO' AND UNOME = 'ANTUNES'
149 )
150 );