You are on page 1of 3

Introduction to Oracle: SQL and PL/SQL, Instructor Guide, Volumen 1

Práctica 11: Incluyendo Restricciones


--------------------------------------------------------------------

Ejercicio 1:
Agregue una restricción de clave primaria (PRIMARY KEY) a nivel de tabla p
ara la tabla EMPLOYEE usando la columna "ID".
La restricción debería ser nombrada al momento de su creación.
Ayuda: La restricción es habilitada tan pronto como el comando ALT
ER TABLE se ejecute satisfactoriamente.
SQL> ALTER TABLE EMPLOYEE
ADD CONSTRAINT EMPLOYEE_ID_PK PRIMARY KEY ( ID );
SQL> save p11q1.sql

Ejercicio 2:
Cree una restricción de clave primaria (PRIMARY KEY) sobre la tabla DEPART
MENT usando la columna "ID".
La restricción debería ser nombrada al momento de su creación.
Ayuda: La restricción es habilitada tan pronto como el comando ALT
ER TABLE se ejecute satisfactoriamente.

SQL> ALTER TABLE DEPARTMENT


ADD CONSTRAINT DEPARTMENT_ID_PK PRIMARY KEY ( ID );
SQL> save p11q2.sql

Ejercicio 3:
Agregue una restricción de integridad referencial (FOREING KEY) sobre la t
abla EMPLOYEE que asegure que ningún empleado
sea asignado a un departamento que no exista.
SQL> ALTER TABLE EMPLOYEE
ADD CONSTRAINT EMPLOYEE_DEPT_ID_FK FOREIGN KEY ( DEPT_ID )
REFERENCES DEPARTMENT ( ID );
SQL> save p11q3.sql

Ejercicio 4: Verifique que las restricciones fueron añadidas consultando la Vis


ta del Diccionario de Datos USER_CONSTRAINTS.
Note el Tipo y el nombre de las restricciones. Guarde su sentenc
ia en un archivo de comandos nombrándolo p11q4.sql
SQL> DESC USER_CONSTRAINT
Nombre Nulo? Tipo
------ ----- ----
OWNER NOT NULL VARCHAR2(30)
CONSTRAINT_NAME NOT NULL VARCHAR2(30)
CONSTRAINT_TYPE VARCHAR2(1)
TABLE_NAME NOT NULL VARCHAR2(30)
SEARCH_CONDITION LONG
R_OWNER VARCHAR2(30)
R_CONSTRAINT_NAME VARCHAR2(30)
DELETE_RULE VARCHAR2(9)
STATUS VARCHAR2(8)
DEFERRABLE VARCHAR2(14)
DEFERRED VARCHAR2(9)
VALIDATED VARCHAR2(13)
GENERATED VARCHAR2(14)}
BAD VARCHAR2(3)
RELY VARCHAR2(4)
LAST_CHANGE DATE
INDEX_OWNER VARCHAR2(30)
INDEX_NAME VARCHAR2(30)
INVALID VARCHAR2(7)
VIEW_RELATED VARCHAR2(14)
SQL> SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE
FROM USER_CONSTRAINTS
WHERE TABLE_NAME IN ('EMPLOYEE', 'DEPARTMENT');
SQL> save p11q4.sql
Ejercicio 5: Muestre los tipos y nombres de objetos desde la vista del diccio
nario de datos USER_OBJECTS para las tablas EMPLOYEE y DEPARTMENT.
Puede requerir que formatee las columnas para mayor legibilidad.
Note que fueron creados índices y tablas nuevos.
SQL> DESC USER_OBJECTS
Nombre Nulo? Tipo
------ ----- ----
OBJECT_NAME VARCHAR2(128)
SUBOBJECT_NAME VARCHAR2(30)
OBJECT_ID NUMBER
DATA_OBJECT_ID NUMBER
OBJECT_TYPE VARCHAR2(19)
CREATED DATE
LAST_DDL_TIME DATE
TIMESTAMP VARCHAR2(19)
STATUS VARCHAR2(7)
TEMPORARY VARCHAR2(1)
GENERATED VARCHAR2(1)
SECONDARY VARCHAR2(1)
Solución del Apéndice: A-30
---------------------------
SQL> COLUMN OBJECT_TYPE FORMAT A30
SQL> COLUMN OBJECT_NAME FORMAT A30
SQL> SELECT OBJECT_TYPE, OBJECT_NAME
FROM USER_OBJECTS
WHERE OBJECT_NAME LIKE 'DEPARTMENT%'
OR OBJECT_NAME LIKE 'EMPLOYEE%';
Si tiene tiempo, complete el ejercicio siguiente:
Ejercicio 6: Modifique la tabla EMPLOYEE. Agregue una columna SALARY de tipo
NUMBER y presición 7.
SQL> ALTER TABLE EMPLOYEE
ADD ( SALARY NUMBER( 7 ) );
SQL> save p11q6.sql
SQL> DESC EMPLOYEE

You might also like