Advertisement
wagner-cipriano

Única SGBD - Schema RH

Oct 21st, 2020
2,403
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 6.63 KB | None | 0 0
  1.  
  2. --CREATE Schema rh2;
  3. --ALTER USER XXXXXXXXXXXXXXX WITH DEFAULT_SCHEMA=rh;
  4.  
  5.  
  6. --DROP ALL tables of SHEMA RH
  7. DROP TABLE IF EXISTS Trabalha_em;
  8. DROP TABLE IF EXISTS Dependente;
  9. DROP TABLE IF EXISTS Projeto;
  10. DROP TABLE IF EXISTS Localizacao_Depto;
  11. ALTER TABLE Departamento DROP CONSTRAINT fk_depto_func;
  12. DROP TABLE IF EXISTS Empregado;
  13. DROP TABLE IF EXISTS Departamento;
  14.  
  15.  
  16.  
  17.  
  18.  
  19. CREATE 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.  
  35. CREATE 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.  
  44. CREATE 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.  
  50. CREATE 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.  
  59. CREATE 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.  
  67. CREATE 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
  81. INSERT INTO Empregado
  82.   VALUES ('Joao', 'B', 'Silva',        1, '1965-01-09', 'R. da Bahia, 2557',     'M',  300, 2, 5);
  83. INSERT INTO Empregado
  84.  VALUES ('Frank', 'T', 'Santos',       2, '1955-08-12', 'Av. Afonso Pena, 3005', 'M', 4000, 8, 5);
  85. INSERT INTO Empregado
  86.  VALUES ('Alice', 'J', 'Pereira',      3, '1968-07-19', 'Av. do Contorno, 2534', 'F', 2500, 4, 4);
  87. INSERT INTO Empregado
  88.  VALUES ('Luciene', 'S', 'Ferreira',   4, '1951-06-20', 'R. Iraí, 175',          'F',  430, 8, 4);
  89. INSERT INTO Empregado
  90.  VALUES ('Pedro', 'K', 'Magalhães',    5, '1952-09-15', 'Av. Silva Lobo, 2050',  'M', 1200, 2, 5);
  91. INSERT INTO Empregado
  92.  VALUES ('Daniela', 'A', 'Oliveira',   6, '1962-07-31', 'R. Ataliba Lago, 250',  'F', 2500, 2, 5);
  93. INSERT INTO Empregado
  94.  VALUES ('Mateus', 'V', 'Mascarenhas', 7, '1979-03-29', 'R. Contria, 12',        'M', 2500, 4, 4);
  95. INSERT INTO Empregado
  96.  VALUES ('Fábio', 'E', 'Lemos',        8, '1947-11-10', 'R. Chile, 425',         'M', 5500, NULL, 1);
  97.  
  98.  
  99. -- DEPARTAMENTOS:::
  100. INSERT INTO Departamento VALUES ('Pesquisa',      5, 2, '1998-05-22');
  101. INSERT INTO Departamento VALUES ('Administração', 4, 4, '1995-01-01');
  102. INSERT INTO Departamento VALUES ('Diretoria',     1, 8, '1998-05-22');
  103.  
  104.  
  105. -- LOCALIZAÇÃO DEPARTAMENTOS:::
  106. INSERT INTO Localizacao_Depto  VALUES (1, 'Savassi');
  107. INSERT INTO Localizacao_Depto  VALUES (4, 'Centro');
  108. INSERT INTO Localizacao_Depto  VALUES (5, 'Buritis');
  109. INSERT INTO Localizacao_Depto  VALUES (5, 'Pampulha');
  110. INSERT INTO Localizacao_Depto  VALUES (5, 'Contagem');
  111.  
  112.  
  113. -- PROJETOS
  114. INSERT INTO Projeto   VALUES ('Produto X',       1, 'Buritis',  5);
  115. INSERT INTO Projeto   VALUES ('Produto Y',       2, 'Pampulha', 5);
  116. INSERT INTO Projeto   VALUES ('Produto Z',       3, 'Contagem', 5);
  117. INSERT INTO Projeto   VALUES ('Informatização',  10, 'Centro',  4);
  118. INSERT INTO Projeto   VALUES ('Reorganização',   20, 'Savassi', 1);
  119. INSERT INTO Projeto   VALUES ('NovosBenefícios', 30, 'Centro',  4);
  120.  
  121.  
  122. --TRABALHA_EM
  123. INSERT INTO Trabalha_em  VALUES (1,  1, 32);
  124. INSERT INTO Trabalha_em  VALUES (1,  2,  7);
  125. INSERT INTO Trabalha_em  VALUES (5,  3, 40);
  126. INSERT INTO Trabalha_em  VALUES (6,  1,  20);
  127. INSERT INTO Trabalha_em  VALUES (6,  2, 20);
  128. INSERT INTO Trabalha_em  VALUES (2,  2,  10);
  129. INSERT INTO Trabalha_em  VALUES (2,  3, 10);
  130. INSERT INTO Trabalha_em  VALUES (2,  10,  10);
  131. INSERT INTO Trabalha_em  VALUES (2,  20, 10);
  132. INSERT INTO Trabalha_em  VALUES (3,  30,  30);
  133. INSERT INTO Trabalha_em  VALUES (3,  10,  10);
  134. INSERT INTO Trabalha_em  VALUES (7,  10,  35);
  135. INSERT INTO Trabalha_em  VALUES (7,  30,  5);
  136. INSERT INTO Trabalha_em  VALUES (4,  30,  20);
  137. INSERT INTO Trabalha_em  VALUES (4,  20,  15);
  138. INSERT INTO Trabalha_em  (NumEmpregado, NumProj) VALUES (8,  20);
  139.  
  140.  
  141.  
  142.  
  143. --DEPENDENTES
  144. INSERT INTO Dependente  VALUES (2,  'Aline',     'F', '1976-04-03', 'Filha');
  145. INSERT INTO Dependente  VALUES (2,  'Victor',    'M', '1973-10-25', 'Filho');
  146. INSERT INTO Dependente  VALUES (2,  'Joana',     'F', '1998-05-03', 'Cônjuge');
  147. INSERT INTO Dependente  VALUES (4,  'Igor',      'M', '1952-02-29', 'Cônjuge');
  148. INSERT INTO Dependente  VALUES (1,  'Michel',    'M', '1988-01-01', 'Filho');
  149. INSERT INTO Dependente  VALUES (1,  'Aline',     'F', '1998-12-31', 'Filha');
  150. INSERT INTO Dependente  VALUES (1,  'Elizabeth', 'F', '1957-05-05', 'Cônjuge');
  151.  
  152.  
  153.  
  154.  
  155.  
  156. --CONTRAINTS
  157.  
  158. ALTER TABLE Empregado
  159. ADD CONSTRAINT fk_func_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
  160.  
  161. ALTER TABLE Empregado
  162. ADD CONSTRAINT fk_func_superv FOREIGN KEY (NumSupervisor) REFERENCES Empregado (NumEmpregado);
  163.  
  164. ALTER TABLE Departamento
  165. ADD CONSTRAINT fk_depto_func FOREIGN KEY (NumGerente) REFERENCES Empregado (NumEmpregado);
  166.  
  167. ALTER TABLE Projeto
  168. ADD CONSTRAINT fk_proj_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
  169.  
  170. ALTER TABLE Dependente
  171. ADD CONSTRAINT fk_dep_func FOREIGN KEY (NumEmpregado) REFERENCES Empregado (NumEmpregado) ON DELETE CASCADE;
  172.  
  173. ALTER TABLE Trabalha_em
  174. ADD CONSTRAINT fk_trab_func FOREIGN KEY (NumEmpregado) REFERENCES Empregado (NumEmpregado) ON DELETE CASCADE;
  175.  
  176. ALTER TABLE Trabalha_em
  177. ADD CONSTRAINT fk_trab_proj FOREIGN KEY (NumProj) REFERENCES Projeto (NumProj) ON DELETE CASCADE;
  178.  
  179. ALTER TABLE Localizacao_Depto
  180. ADD CONSTRAINT fk_loc_depto FOREIGN KEY (NumDepto) REFERENCES Departamento (NumDepto);
  181.  
  182.  
  183.  
  184.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement