sql practica BDR
Bases de Datos
Curso 2009/10
2ª Práctica de Laboratorio
Codificación en máquina de ejercicios
SQL para una BDR
Carmen Costilla
Curso 2009-10
i
12-Noviembre-2009
DIT-ETSIT-UPM
Bases de Datos
Curso 2009/10
PRÁCTICAS SQL EN LA BASE DE DATOS RELACIONAL
‘EMPLEADO-DEPARTAMENTO’
Nota Previa: La 2ª práctica con Toad (versión 9.0) se realizó en elLaboratorio de Bases de Datos el
12/11/2009 con una duración de 30 m. Agustín Moreno Roldán, becario del Laboratorio, se encargó
de su elaboración y presentación.
DDL. Creación de tablas:
Tabla Empleado:
CREATE TABLE EMPLEADO (
ID NUMBER(10) NOT NULL,
NOMBRE VARCHAR2(30),
APELLIDOS VARCHAR2(60),
CARGO VARCHAR2(20),
JEFE_ID NUMBER(10),
FECHA_ALTA DATE,
SUELDO NUMBER(9,2),
COMISION NUMBER(9,2),DEPARTAMENTO_ID NUMBER(10) NOT NULL,
CONSTRAINT EMPLEADOS_PK
PRIMARY KEY (ID)
USING INDEX);
Tabla Departamento:
CREATE TABLE DEPARTAMENTO (
ID NUMBER(10) NOT NULL,
NOMBRE VARCHAR2(50),
LOCALIDAD VARCHAR2(50),
CONSTRAINT DEPARTAMENTOS_PK
PRIMARY KEY (ID)
USING INDEX);
Tabla Rango_Sueldo:
CREATE TABLE RANGO_SUELDO (
GRADO NUMBER(2),
SUELDO_MIN NUMBER(9,2),
SUELDO_MAXNUMBER(9,2));
DML. Inserción de datos:
INSERT INTO DEPARTAMENTO (ID, NOMBRE, LOCALIDAD)
VALUES (1, 'INFORMATICA', 'BILBAO');
INSERT INTO DEPARTAMENTO (ID, NOMBRE, LOCALIDAD)
VALUES (2, 'INVESTIGACION', 'MADRID');
INSERT INTO DEPARTAMENTO (ID, NOMBRE, LOCALIDAD)
VALUES (3, 'VENTAS', 'BARCELONA');
INSERT INTO DEPARTAMENTO (ID, NOMBRE, LOCALIDAD)
VALUES (4, 'PRODUCCION', 'VALENCIA');
commit;
2DIT-ETSIT-UPM
Bases de Datos
Curso 2009/10
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (6, 'INES', 'FERNANDEZ SANCHEZ', 'PRESIDENTE', NULL,
TO_Date('17/11/1991', 'DD/MM/YYYY'), 5000, NULL, 1);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (4,'ESTHER', 'PEÑA MATA', 'DIRECTOR', 6,
TO_Date('01/05/1991', 'DD/MM/YYYY'), 2850, NULL, 3);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (5, 'DANIEL', 'LOPEZ LEON', 'DIRECTOR', 6,
TO_Date('09/06/1991', 'DD/MM/YYYY'), 2450, NULL, 1);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION,DEPARTAMENTO_ID)
VALUES (1, 'CARLOS', 'ALONSO GARCIA', 'COMERCIAL', 4,
TO_Date('20/02/1991', 'DD/MM/YYYY'), 1600, 30, 3);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (2, 'ANDRES', 'GOMEZ SEGUNDO', 'COMERCIAL', 4,
TO_Date('22/02/1991', 'DD/MM/YYYY'), 1250, 50, 3);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO,JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (3, 'ANA', 'HERRANZ CIFUENTES', 'COMERCIAL', 4,
TO_Date('28/09/1991', 'DD/MM/YYYY'), 1250, 140, 3);
INSERT INTO EMPLEADO (ID, NOMBRE, APELLIDOS, CARGO, JEFE_ID, FECHA_ALTA,
SUELDO, COMISION, DEPARTAMENTO_ID)
VALUES (7, 'TOMAS', 'CALLEJA ARCAZ', 'COMERCIAL', 4,
TO_Date( '08/09/1991', 'DD/MM/YYYY'), 1500, 0, 3);
commit;
INSERT INTORANGO_SUELDO (GRADO, SUELDO_MIN, SUELDO_MAX)
VALUES (1, 700, 1200);
INSERT INTO RANGO_SUELDO (GRADO, SUELDO_MIN, SUELDO_MAX)
VALUES (2, 1201, 1400);
INSERT INTO RANGO_SUELDO (GRADO, SUELDO_MIN, SUELDO_MAX)
VALUES (3, 1401, 2000);
INSERT INTO RANGO_SUELDO (GRADO, SUELDO_MIN, SUELDO_MAX)
VALUES (4, 2001, 3000);
INSERT INTO RANGO_SUELDO (GRADO, SUELDO_MIN, SUELDO_MAX)
VALUES (5, 3001,9999);
commit;
3
DIT-ETSIT-UPM
Bases de Datos
Curso 2009/10
DML. Consultas:
1. Obtener los apellidos del empleado
SELECT APELLIDOS FROM EMPLEADO;
2. Obtener los apellidos del empleado sin repetición
SELECT DISTINCT APELLIDOS FROM EMPLEADO;
3. Obtener todos los datos de los empleados apellidados López
SELECT * FROM EMPLEADO WHERE APELLIDOS LIKE 'LOPEZ%';
4. Obtener todos...
Regístrate para leer el documento completo.