Advertisement
Guest User

insert

a guest
Mar 17th, 2017
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- Crea la BD Empleados
  2. CREATE DATABASE BDEMPLEADOS;
  3. USE BDEMPLEADOS;
  4.  
  5. -- Crea las tablas:
  6. CREATE TABLE CENTRO (
  7.     codigo VARCHAR(4),
  8.     nombre VARCHAR(30),
  9.     direccion VARCHAR(50),
  10.     poblacion VARCHAR(15),
  11.     nifEmpDirec CHAR(9),
  12.     CONSTRAINT pk_centro PRIMARY KEY (codigo),
  13.     CONSTRAINT uk_centro UNIQUE (nombre)
  14. );
  15.  
  16. CREATE TABLE DEPARTAMENTO (
  17.     codDpto CHAR(5),
  18.     nombre VARCHAR(40),
  19.     presupAnual int,
  20.     codCen VARCHAR(4) NOT NULL,
  21.     CONSTRAINT pk_departamento PRIMARY KEY (codDpto),
  22.     CONSTRAINT fk_dto_centro FOREIGN KEY (codCen) REFERENCES centro (codigo)
  23. );
  24.  
  25. CREATE TABLE EMPLEADO (
  26.     nif CHAR(9),
  27.     nomEmp VARCHAR(40),
  28.     fechNac DATE,  
  29.     telefono VARCHAR(9),
  30.     fechaIncorpora DATE,
  31.     numHijos int,
  32.     salario int,
  33.     codDpto CHAR(5),
  34.     CONSTRAINT pk_empleado PRIMARY KEY (nif),
  35.     CONSTRAINT fk_empleado_dto FOREIGN KEY (codDpto) REFERENCES departamento (codDpto)
  36. );
  37.  
  38. CREATE TABLE HIJO (
  39.     nombre VARCHAR(40),
  40.     fecNac DATE,
  41.     numHij int,
  42.     nifEmp CHAR(9),
  43.     CONSTRAINT pk_habilidademp PRIMARY KEY (nifEmp,numHij),
  44.     CONSTRAINT fk_hijo_empleado FOREIGN KEY (nifEmp) REFERENCES empleado (nif)
  45. );
  46.  
  47. CREATE TABLE HABILIDAD (
  48.     codHab VARCHAR(5),
  49.     descripcion VARCHAR(30),
  50.     CONSTRAINT pk_habilidad PRIMARY KEY (codHab),
  51.     CONSTRAINT uk_habilidad UNIQUE (descripcion)
  52. );
  53.  
  54. CREATE TABLE HABILIDADEMPL (
  55.     codHab VARCHAR(5),
  56.     nifEmp CHAR(9),
  57.     nivHab FLOAT,
  58.     CONSTRAINT pk_habemp PRIMARY KEY (codHab,nifEmp),
  59.     CONSTRAINT fk_hab_hab FOREIGN KEY (codHab) REFERENCES habilidad (codHab),
  60.     CONSTRAINT fk_hab_emp FOREIGN KEY (nifEmp) REFERENCES empleado (nif)
  61. );
  62.  
  63. ALTER TABLE centro
  64. ADD CONSTRAINT fk_centro_empjefe FOREIGN KEY (nifEmpDirec) REFERENCES empleado (nif);
  65.  
  66. -- Ejercicio 3
  67. -- a. El número de hijos siempre debe ser positivo
  68. ALTER TABLE empleado
  69. ADD CONTRAINT chk_nhijos CHECK (numHij>=0);
  70.  
  71. -- b. La fecha de nacimiento de los hijos no puede ser después del día de introducir los datos
  72. ALTER TABLE hijo
  73. ADD CONSTRAINT chk_fechanac CHECK (fechNac<=SYSDATE);
  74. ALTER TABLE hijo
  75. ADD CONSTRAINT chk_fechanac CHECK (fecNac<=TO_DATE('16-03-2017','DD-MM-YYYY'));
  76.  
  77. -- Realiza las siguientes inserciones:
  78. INSERT INTO centro (codigo, nombre, direccion, poblacion)
  79. VALUES ('DIGE', 'Dirección General', 'Av. Constitución 88', 'San Juan');
  80. INSERT INTO centro (codigo, nombre, direccion, poblacion)
  81. VALUES ('FAZS', 'Fábrica Zona Sur', 'Pol. Ind. Gral. Atalayas', 'Alicante');
  82. INSERT INTO centro (codigo, nombre, direccion, poblacion)
  83. VALUES ('OFZS', 'Oficinas Zona Sur', 'Pl. España 14', 'Campello');
  84.  
  85. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  86. VALUES ('ADMZS', 'Administración Zona Sur', 119000, 'OFZS');
  87. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  88. VALUES ('DIRGE', 'Dirección General', 260000, 'DIGE');
  89. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  90. VALUES ('INyDI', 'Investigación y Diseño', 250000, 'DIGE');
  91. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  92. VALUES ('JEFZS', 'Jefatura Fábrica Zona Sur', 52700, 'FAZS');
  93. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  94. VALUES ('PROZS', 'Producción Zona Sur', 918000, 'FAZS');
  95. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  96. VALUES ('VENZS', 'Ventas Zona Sur', 114750, 'OFZS');
  97. INSERT INTO departamento (codDpto, nombre, presupAnual, codCen)
  98. VALUES ('PRUEB', 'Departamento de pruebas', 100000, 'DIGE');
  99.  
  100. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  101. VALUES ('11111111A', 'Saladino Mandamás, Augusto', '07-08-1961', 96111111, '01-07-1972', 1, 72000, 'DIRGE');
  102. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  103. VALUES ('22222222B', 'Manrique Bacterio, Luisa','08-06-1970', 961112233, '14-06-1991', 0, 45000,'INyDI');
  104. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  105. VALUES ('33333333C', 'Monforte Cid, Roldán', '07-12-1965', 961212133, '08-06-1984', 1, 52000,'VENZS');
  106. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  107. VALUES ('44444444D', 'Topaz Illán, Carlos', '21-02-1975', 918753838, '09-08-1990', 0, 32000,'VENZS');
  108. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  109. VALUES ('55555555E', 'Alada Veraz, Juana', '08-03-1958', 931251239, '07-08-1976', 1, 62000, 'ADMZS');
  110. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  111. VALUES ('66666666F', 'Gozque Altanero, Cándido', '03-06-1969', 916482383, '01-08-1991', 1, 50000, 'JEFZS');
  112. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  113. VALUES ('77777777G', 'Forzado López, Galeote', '07-08-1975', NULL, '30-06-1994', 0, 17600,'PROZS');
  114. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  115. VALUES ('88888888H', 'Mascullas Alto, Elísa', '15-06-1976', NULL, '15-08-1994', 1, 17600,'PROZS');
  116. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  117. VALUES ('99999999I', 'Mando Correa, Rosa', '19-07-1968', 964512124, '10-06-1982', 2, 34100,'PROZS');
  118. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  119. VALUES ('10101010J', 'Mosc Amuerta, Mario', '07-01-1975', NULL, '02-11-1993', 0, 14300,'PROZS');
  120. INSERT INTO empleado (nif, nomEmp, fechNac, telefono, fechaIncorpora, numHijos, salario, codDpto)
  121. VALUES ('11121314K', 'Aracil Suarez, Armando', '24-12-1987', 967321234, '25-10-2010', 2, 80000,'PRUEB');
  122.  
  123. UPDATE centro
  124. SET nifEmpDirec='11111111A'
  125. WHERE codigo='DIGE';
  126. UPDATE centro
  127. SET nifEmpDirec='66666666F'
  128. WHERE codigo='FAZS';
  129. UPDATE centro
  130. SET nifEmpDirec='55555555E'
  131. WHERE codigo='OFZS';
  132.  
  133. INSERT INTO habilidad (codHab, descripcion)
  134. VALUES ('FONTA', 'Fontanería');
  135. INSERT INTO habilidad (codHab, descripcion)
  136. VALUES ('GEREN', 'Gerencia');
  137. INSERT INTO habilidad (codHab, descripcion)
  138. VALUES ('GESCO', 'Gestión Contable');
  139. INSERT INTO habilidad (codHab, descripcion)
  140. VALUES('MARKE', 'Marketing');
  141. INSERT INTO habilidad (codHab, descripcion)
  142. VALUES ('MECAN', 'Mecanografía');
  143. INSERT INTO habilidad (codHab, descripcion)
  144. VALUES('RELPU', 'Relaciones Públicas');
  145. INSERT INTO habilidad (codHab, descripcion)
  146. VALUES ('TELEF', 'Telefonista');
  147. INSERT INTO habilidad (codHab, descripcion)
  148. VALUES('INFOR', 'Informática');
  149.  
  150. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  151. VALUES ('GEREN', '11111111A', 10.00);
  152. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  153. VALUES ('RELPU', '11111111A', 9.00);
  154. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  155. VALUES ('MARKE', '33333333C', 9.00);
  156. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  157. VALUES ('MARKE', '44444444D', 6.00);
  158. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  159. VALUES ('GESCO', '55555555E', 9.00);
  160. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  161. VALUES ('RELPU', '55555555E', 8.00);
  162. INSERT INTO habilidadEmpl (codHab, nifEmp, nivHab)
  163. VALUES ('FONTA', '88888888H', 7.00);
  164.  
  165.  
  166.  
  167. INSERT INTO hijo (nifEmp, numHij, fechaNac, nombre) VALUES
  168. (1, 1, '07-06-1989', 'Saladino Oropel, Flavia'),
  169. (3, 1, '12-09-1990', 'Monforte Lemos, Jesús'),
  170. (5, 1, '06-03-1982', 'Pastora Alada, Mateo'),
  171. (8, 1, '14-03-1994', 'Fuerte Mascullas, Anacleto'),
  172. (9, 1, '28-02-1988', 'León Mando, Elvira'),
  173. (9, 2, '18-07-1990', 'León Mando,  Plácido'),
  174. (11, 1, '16-09-2000', 'Aracil Gómez, Ana'),
  175. (11, 2, '26-03-2002', 'Aracil Gómez, Lorena');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement