Anda di halaman 1dari 6

BASES DE DATOS II (GUIA EXAMEN BIMESTRAL 14-3)

I. Conteste lo que a continuacin se le pide, de acuerdo con el esquema en la figura. Considere que
ya han sido creadas las tablas y que han sido cargadas con datos

1. Realice las siguientes operaciones con ALTER TABLE (en caso de no ser posible explique):
a. Agregue una restriccin llamada ck_salario que verifique que los salarios solo pueden estar en el
rango de $10 000 a $40 000
ALTER TABLE EMPLEADO ADD CONSTRAINT CK_SALARIO CHECK(SALARIO<=10
000 AND SALARIO>=40 000);
b. Agregue una restriccin llamada un_nombre que establezca que no puede haber nombres
duplicados en la tabla DEPARTAMENTO.
ALTER
TABLE
UNIQUE(NOMBRE);

DEPARTAMENTO

ADD

CONSTRAIN

UN_NOMBRE

c. Modifique el campo depto_no en la tabla DEPARTAMENTO y cambie su dominio a char(1).


NO SE PUEDE POR QUE LA TABLA TIENE DATOS Y ESTAMOS DISMINUYENDO LA
LONGITUS;
d. Elimine la restriccin de llave primaria pk_empleado, despus vuelva a crearla pero con el
nombre pk_emple.
ALTER TABLE EMPLEADO DROP CONSTRAIN PK_EMPLEADO;
ALTER TABLE EMPLEADO ADD CONSTRAIN PK_EMPLE PRIMARY KEY(EMP_NO);
e. Elimine la restriccin de llave primaria pk_departamento.
NO SE PUEDE YA QUE ESTA RELACIONADA CONEMPLEADO
f. Modifique el campo APELLIDO para que acepte valores NULOS, pero sin cambiar su dominio.
SELECT CONSTRAIN_TYPE,CONSTRAIN_NAME,SERCH_CONDITION
FROM USER_CONSTRAINT
WHERE TABLE_NAME=EMPLEADO;

2. Realice las operaciones DML que a continuacin se le indican


a. Obtenga el apellido de todos los empleados que tengan una letra A en cualquier posicin de su
apellido. Ordene en forma descendente.
SELECT APELLIDO
FROM EMPLEADO
WHERE APELLIDO LIKE %A%
ORDER BY APELLIDO DESC;
b. Incremente en 15% el salario de todos los empleados que pertenezcan al departamento 04 o 93 y
que cobren menos de $10 000.
UPDATE EMPLEADO
SET SALARIO=SALARIO*.15
WHERE DEPTO_NO IN (04, 93) AND SALARIO<10 000;
c. Obtenga la nmina correspondiente a cada departamento. Ordene en forma descendente. La
nmina corresponde a la suma de los salarios.
SELECT SUM(SALARIO)
FROM EMPLEADO
GROUP BY DEPTO_NO
ORDER BY SUM(SALARIO) DESC;
d. Obtenga el apellido de los empleados que tienen el menor salario en la empresa.
SELECT APELLIDO
FROM EMPLEADO
WHERE SALARIO=(SELECT MIN(SALARIO)
FROM EMPLEADO);

e. La empresa har recorte de personal, por lo que eliminar a los empleados que estn adscritos al
departamento de YU y cuyo oficio sea MENSAJERO.
DELETE FROM EMPLEADO
WHERE DEPTO_NO=(SELECT DEPTO_NO
FROM DEPARTAMENTO
WHERE NOMBRE=YU) AND OFICIO= MENSAJERO;
f. Obtenga el los departamentos (nmero) que tengan a su cargo ms de dos empleados.
SELECT DEPTO_NO, COUNT(*)
FROM EMPLEADO
GROUP BY DEPTO_NO
HAVING COUNT(*)>2;

II. Conteste lo que a continuacin se le pide, de acuerdo con el esquema en la figura.

1. Obtenga la calificacin mnima obtenida por el alumno JUAN PECAS


SLECT MIN(CALIFICACION)
FROM CURSA
WHERE CONTROL=(SELECT CONTROL
FROM ALUMNO
WHERE NOMBRE=JUAN PECAS);
2. Obtenga las materias y crditos del alumno con nmero de control 7801537
SLECT NOMM,CREDITOS
FROM MATERIA
WHERE CLAVE=(SELECT CLAVE
FROM CURSA
WHERE CONTROL=7801537);
3. Obtenga el nmero total de crditos del alumno SALVADOR CHAVEZ
SELECT SUM(CREDITOS)
FROM MATERIA
WHERE CLAVE=(SELECT CLAVE
FROM CURSA
WHERE CONTROL=(SELECT CONTROL
FROM ALUMNO
WHERE NOMBRE=SALVADOR CHAVEZ));

4. Actualice la calificacin de la alumna GRACIELA OLIVARES en la materia BASES DE


DATOS II, la nueva calificacin es 10
UPDATE CURSA
SET CALIFICACION=10
WHERE CONTROL=(SELECT CONTROL
FROM ALUMNO
WHERE NOMBRE=GRACIELA OLIVARES)
AND CLAVE=(SELECT CLAVE
FROM MATERIA
WHERE NOMM=BASE DE DATOS II);

5. En una consulta obtenga el nombre de los alumnos y la calificacin correspondiente a la


materia de INTELIGENCIA ARTIFICIAL.
SELECT CALIFICACIO
FROM CURSA
WHERE CONTROL IN (SELECT CONTROL
FROM ALUMNO)
WHERE CLAVE=(SELECT CLAVE
FROM MATERIA
WHERE NOMM=INTELIGENCIA ARTIFICIAL));
III. Que se trae cada consulta (FUNCIONES SIMPLES)
1. SELECT ROUND (12.71) FROM DUAL;
REDONDEA EL NUMERO A 13
2. SELECT ROUND (12.71,-1) FROM DUAL;
REDONDEA EL NUMERO A 10
3. SELECT TRUNC (12.71) FROM DUAL;
TRUNCA EL NUMERO A 12

4. SELECT TRUNC (12.71,-2) FROM DUAL;


TRUNCA EL NUMERO Y LO DEJA EN 0
5. SELECT SUBSTR (MARIANA ORTEGA,3,2) FROM DUAL;
DEVUELBE LA LETRA R E I
6. SELECT SUBSTR (MARIANA ORTEGA,-3,2) FROM DUAL;
DEVUELEBE LA LETRA E Y G
7. SELECT LENGTH(SUBSTR (MARIANA ORTEGA,7)) FROM DUAL;
TE DICE EL NUMERO DE LA POCISION DONDE SE ENCUENTRA EL ESPACIO EN
BLANCO.
8. SELECT SUBSTR(MARIANA ORTEGA,1,INSTR(MARIANA ORTEGA,A,1,2))
FROM DUAL;
BUSCA LA SEGUNDA LETRA A DE LA CADENA Y OBTIENES MARIA
9. SELECT SUBSTR(MARIANA ORTEGA,INSTR(MARIANA ORTEGA,A,1,2),3) FROM
DUAL;
TE BUSCA LA SEGUNDA LETRA A DESDE LA PRIMERA POCICION Y SOLO TRAE 3
CARACYTERES ANA

Anda mungkin juga menyukai