1 / 16

Desarrollo de bases de datos

Desarrollo de bases de datos. Repaso de SQL. EMPLEADO. NSS_SUPERV. ND. NOMBRE. INIC. APELLIDO. NSS. FECHA_NCTO. DEPARTAMENTO. NOMBRED. NSS_JEFE. NÚMEROD. FECHA_INIC_JEFE. LOCALIZACIONES_DEPT. NÚMEROD. LOCALIZACIÓND. PROYECTO. NOMBREP. NÚMEROP. LOCALIZACIÓNP. ND. TRABAJA_EN.

babu
Download Presentation

Desarrollo de bases de datos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Desarrollo de bases de datos Repaso de SQL Ainhoa Álvarez

  2. EMPLEADO ... NSS_SUPERV ND NOMBRE INIC APELLIDO NSS FECHA_NCTO DEPARTAMENTO NOMBRED NSS_JEFE NÚMEROD FECHA_INIC_JEFE LOCALIZACIONES_DEPT NÚMEROD LOCALIZACIÓND PROYECTO NOMBREP NÚMEROP LOCALIZACIÓNP ND TRABAJA_EN NSSE NP HORAS DEPENDIENTE NSSE NOMBRE_DEPENDIENTE SEXO FECHA_NCTO PARENTESCO Modelo relacional empresa

  3. Manipulación tablas CREATETABLE DEPARTAMENTO ( NOMBRED VARCHAR(15) NOT NULL, NUMEROD INT NOT NULL, NSS_JEFE CHAR(9) NOT NULL DEFAULT “888665555”, FECHA_INIC_JEFE DATE, CONSTRAINT CLPDEPTO PRIMARY KEY(NUMEROD), CONSTRAINT CLSDE UNIQUE(NOMBRED), CONSTRAINT CLEGTESDEP FOREIGN KEY (NSS_JEFE) REFERENCES EMPLEADO(NSS)ON DELETE SET NULL ON UPDATE CASCADE); Si se modifica, propagar el nuevo valor a todos los empleados que lo tienen como jefe Al borrar un empleado poner NULL en todos los empleados que lo tengan como jefe

  4. DROPTABLE t1 CASCADE||RESTRICT • ALTERTABLE EMPRESA.EMPLEADO ADD PUESTO VARCHAR(12); • ALTERTABLE EMPRESA.EMPLEADO DROP DIRECCIÓN CASCADE; • ALTERTABLE EMPRESA.DEPARTAMENTO ALTER NSS_JEFE DROP DEFAULT

  5. DISTINCT •  SELECT ALL SALARIO FROM EMPLEADO; SQL no elimina automáticamente las tuplas repetidas • SELECT DISTINCT SALARIO FROM EMPLEADO • SELECT DISTINCT SALARIO, APELLIDO FROM EMPLEADO; Pueden aparecer salarios repetidor pero no dos filas con igual salario y apellido

  6. IN y BETWEEN •         NSS de los empleados que trabajan en los proyectos 1, 2 ó 3. SELECT DISTINCT NSSE FROM TRABAJA_EN WHERE NÚMP IN (1,2,3); SELECT DISTINCT NSSE FROM TRABAJA_EN WHERE (NÚMP BETWEEN 1 and 3);

  7. Valores nulos •         Nombre y apellido de empleados sin supervisores. SELECT NOMBRE, APELLIDO FROM EMPLEADO WHERE NSS_SUPERV IS NULL;

  8. Ordenación tuplas •    Empleados y proyectos donde trabajan ordenados por departamento y en cada departamento alfabéticamente por apellido y nombre : SELECT NOMBRED, APELLIDO, NOMBRE, NOMBREP FROM (( (DEPARTAMENTO inner join EMPLEADO on NÚMEROD=ND) inner join TRABAJA_EN on NSS=NSSE) inner join PROYECTO on NP=NÚMEROP ORDER BY NOMBRED, APELLIDO, NOMBREP

  9. Funciones agregadas •         Suma de salarios de los empleados, junto a salarios máximo, mínimo y medio: SELECT SUM(SALARIO), MAX(SALARIO), MIN(SALARIO), AVG(SALARIO) FROM EMPLEADO;

  10. •         Obtener el número de departamento junto a su número de empleados y salario medio: SELECT ND, COUNT(*), AVG(SALARIO) FROM EMPLEADO GROUP BY ND;

  11. Tablas reunidas SELECT NOMBRE, APELLIDO, DIRECCIÓN FROM (EMPLEADO INNERJOIN DEPARTAMENTO ON ND=NÚMEROD) WHERE NOMBRED=‘Investigación’;

  12. LEFT JOIN • Mostrar los nombres de departamento junto con el número de proyectos que llevan. Los que no tienen ningún proyecto relacionado también han de aparecer Select departamento.nombre, count(numerop) from departamento left join proyecto on departamento.numerod=proyecto.nd group by departamento.nombre Los que no tengan proyecto count=0 si ponemos coun(*) devolverá 1

  13. RIGHT JOIN • Mostrar los nombres de departamento junto con el número de proyectos que llevan. Los que no tienen ningún proyecto relacionado también han de aparecer Select departamento.nombre, count(numerop) from proyecto right join departamento on departamento.numerod=proyecto.nd group by departamento.nombre

  14. Inserción tuplas •         INSERT INTO EMPLEADO VALUES (‘Ricardo’, ‘C’, ‘Martínez’, ‘653298653’, ‘1952-12-30’, ‘Olmo 98, Cedros, MX’, ‘H’, 37000, ‘987654321’, 4) •         INSERT INTO EMPLEADO(NOMBRE, APELLIDO, ND,NSS) VALUES (‘Ricardo’, ‘Martínez’, 4, ‘653298653’)

  15. Eliminación tuplas DELETE FROM EMPLEADO WHERE APELLIDO=‘Brown’; DELETE FROM EMPLEADO WHERE ND IN (SELECT NÚMEROD FROM DEPARTAMENTO WHERE NOMBRED=‘Investigación’);

  16. Modificación tuplas UPDATE PROYECTO SET LOCALIZACIÓNP=‘Boston’, NUMD=5 WHERE NÚMEROP=10; UPDATE EMPLEADO SET SALARIO=SALARIO*1.1 WHERE ND IN (SELECT NÚMEROD FROM DEPARTAMENTO WHERE NOMBRED= ‘Investigación’);

More Related