Top Banner
Ejercicios de Base de Datos Docente Pilar Pardo
11

Ejercicio Práctico de Base de Datos

Jan 17, 2017

Download

Education

Pilar Pardo
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ejercicio Práctico de Base de Datos

Ejercicios de Base de Datos

Docente Pilar Pardo

Page 2: Ejercicio Práctico de Base de Datos

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

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

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

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

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

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

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

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

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

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