ejercicio práctico de base de datos
TRANSCRIPT
![Page 1: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/1.jpg)
Ejercicios de Base de Datos
Docente Pilar Pardo
![Page 2: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/2.jpg)
Ejemplo Práctico Resuelto
# ID_DPTO
NOMBRE_DPTO
N_EMPLEADOS_DPTO
FECHA_CREAC_DPTO
DEPARTAMENTO
# ID_EMPLEADO
NOMBRE_EMP
APELLIDO_EMP
FECHA_NACIM_EMP
SALARIO_EMP
ID_DEPTO
EMPLEADO
1 n
MODELO FISICO
![Page 3: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/3.jpg)
CREATE TABLE DEPARTAMENTO (
ID_DPTO INT NOT NULL,
NOM_DPTO VARCHAR(50) NOT NULL,
N_EMPLEADOS_DPTO INT NOT NULL,
FECHA_CREAC_DPTO VARCHAR (12) NULL,
PRIMARY KEY(ID_DPTO)
);
Creando tabla DEPARTAMENTO
![Page 4: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/4.jpg)
CREATE TABLE EMPLEADO (
ID_EMPLEADO INT NOT NULL,
NOMBRE_EMP VARCHAR(15) NOT NULL,
APELLIDO_EMP VARCHAR(15) NOT NULL,
FECHA_NAC_EMP VARCHAR(12) NOT NULL,
SALARIO_EMP INT NOT NULL,
ID_DPTO INT NOT NULL,
PRIMARY KEY (ID_EMPLEADO),
FOREIGN KEY (ID_DPTO) REFERENCES DEPARTAMENTO (ID_DPTO)
);
Creando la tabla EMPLEADO
Indica que tabla proviene la clave foránea (FK).
En este caso, ID_DPTO es la clave foránea y proviene
de la tabla DEPARTAMENTO
CLAVE FORANEA QUE SE CREA DEBIDO A LA CARDINALIDAD UNO A MUCHOS
![Page 5: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/5.jpg)
Insertando datos a la tabla DEPARTAMENTO
INSERT INTO DEPARTAMENTO (ID_DPTO, NOM_DPTO, N_EMPLEADOS_DPTO, FECHA_CREAC_DPTO)
VALUES (001, 'SISTEMAS', 30, '10-10-2009') ; INSERT INTO DEPARTAMENTO (ID_DPTO, NOM_DPTO, N_EMPLEADOS_DPTO, FECHA_CREAC_DPTO)
VALUES (002, 'CONTABILIDAD', 20, '03-01-2000') ; INSERT INTO DEPARTAMENTO (ID_DPTO, NOM_DPTO, N_EMPLEADOS_DPTO, FECHA_CREAC_DPTO)
VALUES (003, ‘CONTABILIDAD', 15, '25-12-2009') ;
001
002
003
ID_DPTO
SISTEMAS
CONTABILIDAD
CONTABILIDAD
NOM_DPTO
30
20
15
N_EMPLEADOS_DPTO
10-10-2009
03-01-2000
25-12-2009
FECHA_CREAC_DPTO
![Page 6: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/6.jpg)
Insertando datos a la tabla EMPLEADO
INSERT INTO EMPLEADO (ID_EMPLEADO, NOMBRE_EMP, APELLIDO_EMP, FECHA_NAC_EMP, SALARIO_EMP, ID_DPTO) VALUES ('1111’ , 'MAURICIO’, 'HERRERA’, '03-01-1980’, 800000, 001 ) ;
INSERT INTO EMPLEADO (ID_EMPLEADO, NOMBRE_EMP, APELLIDO_EMP, FECHA_NAC_EMP, SALARIO_EMP, ID_DPTO)
VALUES ('2222’ , ‘PAOLA‘, ‘NUÑEZ’, '18-05-1973’, 600000, 002 ) ; INSERT INTO EMPLEADO (ID_EMPLEADO, NOMBRE_EMP, APELLIDO_EMP, FECHA_NAC_EMP, SALARIO_EMP, ID_DPTO)
VALUES ('3333’ , 'NATALIA’, 'GATICA’, '25-12-1984’, 400000, 003 ) ;
111
2222
3333
ID_EMPLEADO
MAURICIO
PAOLA
NATALIA
NOMBRE_EMP
HERRERA
NUÑEZ
GATICA
APELLIDO_EMP
03-01-1980
18-05-1973
25-12-1984
FECHA_NAC_EMP
800000
600000
400000
SALARIO_EMP
001
002
003
ID_DPTO (FK)
SI QUISIERAMOS CAMBIAR EL ID_EMPLEADO 111 DEL PRIMER REGISTRO AL FORMATO 1111:
Update EMPLEADO Set id_empleado='1111' Where id_empleado='111'
1111
2222
3333
ID_EMPLEADO
MAURICIO
MARIELA
NATALIA
NOMBRE_EMP
HERRERA
NEIRA
GATICA
APELLIDO_EMP
03-01-1980
18-05-1973
25-12-1984
FECHA_NAC_EMP
800000
600000
400000
SALARIO_EMP
001
002
003
ID_DPTO (FK)
![Page 7: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/7.jpg)
Obtener la Suma del Numero de empleados de la tabla DEPARTAMENTO
SELECT SUM(N_EMPLEADOS) AS NUMERO_TOTAL FROM DEPARTAMENTO;
Numero de DEPARTAMENTOS de la empresa
SELECT COUNT(DISTINCT NOM_DPTO) AS NUMERO_DPTO FROM DEPARTAMENTO;
Consultas
![Page 8: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/8.jpg)
Empleados que trabajan en el departamento de Sistemas
SELECT COUNT(*) AS FUNCIONARIOS_SISTEMAS
FROM DEPARTAMENTO
WHERE nom_dpto='sistemas';
Numero de empleados de cada departamento
SELECT nom_dpto, COUNT(*) AS CANTIDAD_FUNCIONARIOS
FROM DEPARTAMENTO
GROUP BY nom_dpto;
![Page 9: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/9.jpg)
Cláusula HAVING:
Selecciona alguno de los grupos definidos por GROUP BY, según una
condición.
Ejemplo:
Lista los departamentos que tengan menos de 10 funcionarios ingresados a la base de datos.
Ojo! No confundir con la cantidad TOTAL de funcionarios por departamento.
Esta consulta permite ver sólo aquellos registros que han sido ingresados a la base de datos y que
cumplan la condición de ser menor a 10 por departamento.
SELECT NOM_DPTO, COUNT(*) FROM empleado
GROUP BY NOM_DPTO
HAVING COUNT(*)<10;
Cláusulas
![Page 10: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/10.jpg)
ORDER BY: Ordena los registros seleccionados ascendentemente. DESC: Ordena los registros seleccionados descendentemente. SELECT nombre, apellido FROM EMPLEADO ORDER BY apellido DESC;
![Page 11: Ejercicio Práctico de Base de Datos](https://reader031.vdocumento.com/reader031/viewer/2022013106/587dd4591a28ab5b5b8b5f7d/html5/thumbnails/11.jpg)
AND Evalúa dos condiciones y devuelve un valor de
verdad solo si ambas son ciertas.
OR Evalúa dos condiciones y devuelve un valor de si
alguna de las dos es cierta.
NOT Devuelve el valor contrario de la expresión.
Operadores Lógicos