Está en la página 1de 11

Ejercicios de Base de Datos

Docente Pilar Pardo

Ejemplo Prctico
Resuelto
MODELO FISICO
EMPLEADO

DEPARTAMENTO
1
# ID_DPTO
NOMBRE_DPTO
N_EMPLEADOS_DPTO
FECHA_CREAC_DPTO

# ID_EMPLEADO
NOMBRE_EMP
APELLIDO_EMP
FECHA_NACIM_EMP
SALARIO_EMP
ID_DEPTO

Creando tabla
DEPARTAMENTO
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 la tabla EMPLEADO


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,
CLAVE
ID_DPTO INT NOT NULL,
CLAVEFORANEA
FORANEAQUE
QUESE
SECREA
CREA
DEBIDO
DEBIDOAALA
LACARDINALIDAD
CARDINALIDAD
PRIMARY KEY (ID_EMPLEADO),
UNO
A
MUCHOS
UNO A MUCHOS
FOREIGN KEY (ID_DPTO) REFERENCES DEPARTAMENTO
(ID_DPTO)
);
Indica
Indicaque
quetabla
tabla
proviene
provienela
laclave
clave
fornea
fornea(FK).
(FK).
En
Eneste
estecaso,
caso,
ID_DPTO
ID_DPTOes
esla
laclave
clave
fornea
forneayyproviene
proviene
de
dela
latabla
tabla

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)
ID_DPTO

NOM_DPTO

N_EMPLEADOS_DPTO

FECHA_CREAC_DPTO

VALUES (003, CONTABILIDAD', 15, '25-12-2009') ;

001
002
003

SISTEMAS
CONTABILIDAD
CONTABILIDAD

30
20
15

10-10-2009
03-01-2000
25-12-2009

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, '0301-1980, 800000, 001 ) ;
INSERT INTO EMPLEADO (ID_EMPLEADO, NOMBRE_EMP, APELLIDO_EMP,
FECHA_NAC_EMP, SALARIO_EMP, ID_DPTO) VALUES ('2222 , PAOLA,

NUEZ,

'18-05-1973, 600000, 002 ) ;


INSERT INTO EMPLEADO (ID_EMPLEADO, NOMBRE_EMP, APELLIDO_EMP,
FECHA_NAC_EMP, SALARIO_EMP, ID_DPTO) VALUES ('3333 , 'NATALIA,
ID_EMPLEADO'25-12-1984,
NOMBRE_EMP 400000,
APELLIDO_EMP
'GATICA,
003 FECHA_NAC_EMP
);
111
2222
3333

MAURICIO
PAOLA
NATALIA

HERRERA
NUEZ
GATICA

03-01-1980
18-05-1973
25-12-1984

SALARIO_EMP
800000
600000
400000

ID_DPTO (FK)
001
002
003

SI QUISIERAMOS CAMBIAR EL ID_EMPLEADO 111 DEL PRIMER REGISTRO AL


FORMATO 1111:
Update
EMPLEADO
Set id_empleado='1111'
Where id_empleado='111'
ID_DPTO (FK)
ID_EMPLEADO
NOMBRE_EMP
APELLIDO_EMP
FECHA_NAC_EMP
SALARIO_EMP
1111
2222
3333

MAURICIO
MARIELA
NATALIA

HERRERA
NEIRA
GATICA

03-01-1980
18-05-1973
25-12-1984

800000
600000
400000

001
002
003

Consultas

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;

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;

Clusulas

Clusula HAVING:
Selecciona alguno de los grupos definidos por GROUP BY, segn una
condicin.
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 slo aquellos registros que han sido ingresados a la base de
datos y que
cumplan la condicin de ser menor a 10 por departamento.
SELECT NOM_DPTO, COUNT(*) FROM empleado
GROUP BY NOM_DPTO
HAVING COUNT(*)<10;

ORDER BY:
Ordena los registros seleccionados
ascendentemente.
DESC:
Ordena los registros seleccionados
descendentemente.
SELECT nombre, apellido FROM EMPLEADO
ORDER BY apellido DESC;

Operadores Lgicos

AND

Evala dos condiciones y devuelve un valor de


verdad solo si ambas son ciertas.

OR

Evala dos condiciones y devuelve un valor de si


alguna de las dos es cierta.

NOT

Devuelve el valor contrario de la expresin.

También podría gustarte