UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION
FACULTAD DE INGENIERIA INDUSTRIAL, SISTEMAS E INFORMATICA ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA INFORMATICA
CURSO ADMINISTRACION DE BASE DE DATOS
SEPARATA Nº 02 TABLAS Y RESTRICCIONES
DOCENTE ING. CIP EDWIN IVAN FARRO PACIFICO
HUACHO-LIMA PERU
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
TABLAS CREAR TABLAS
Los requisitos de l cláusula CREATE TABLE son: Nombre de la tabla Nombre de la columna Tipo de datos de la columna Sintaxis: CREATE TABLE [usuario.]tabla ({columna1 tipo_dato [DEFAULT exp][constraint_columna]}, {columna2 tipo_dato [DEFAULT exp][constraint_columna]}…) Reglas de nomenclatura: El nombre debe tener como longitud de 1 a 30 caracteres con el primer carácter alfabético: A-Z,a-z,0-9 $ y # también son válidos pero no se sugieren No debeser una palabra reservada en oracle No debe ser igual al nombre de otro objeto dentro del mismo usuario de oracle
Ejemplo: SQL> CREATE TABLE departamento 2 (iddepa number(2), 3 nombre varchar2(14), 4 ubicacion varchar2(13)); Borrar tablas
Sintaxis: DROP TABLE nombre_tabla Ejemplo: SQL>DROP TABLE departamento; Crear una tabla a partir de un select.
Se pueden crear tablas a partir de una sentencia SELECT utilizando la cláusula AS. Sintaxis: CREATE TABLE nombre_tabla [(columna1,columna2,…)] AS sentencia_select; Ejemplo: CREATE TABLE departamento AS SELECT * FROM dept;
Mostrar estructura. Listar registros.
Ing. CIP Edwin Iván Farro Pacífico
Pag 2
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
Restricciones de Columnas
La siguiente tabla muestra los diferentes restricciones manejadas por oracle. CONSTRAINT PRIMARY KEY CHECK FOREING KEY (nombre_columna) REFERENCES(nombre_columna) [NOT] NULL UNIQUE
ON DELETE CASCADE
USO Identifica de manera única a cada fila de la tabla Especifica una condición que cada fila debe satisfacer en la tabla. Designa una columna o combinación de columnas como la clave foránea Establece y obliga una relación entre esta columna de la clave primaria de la tabla referenciada. Especifica que esta columna no puede contener un valor nulo. Especifica que una o más columnas deben tener valores únicos través de todas las filas. Oracle crea un índice único para asegurar este constraint. Especifica que Oracle mantendrá la integridad automáticamente removiendo los valores de la clave foránea dependiente si se remueven los valores de la clave primaria o única.
Ejemplo: Crear una tabla que utilice los diferentes tipos de constraints. SQL> CREATE TABLE emp1 2 (codigo NUMBER(4) PRIMARY KEY, 3 nombre VARCHAR2(10) UNIQUE, 4 trabajo VARCHAR2(9) NOT NULL, 5 jefe NUMBER(4) NULL, 6 ingreso DATE DEFAULT SYSDATE, 7 salario NUMBER(7,2) DEFAULT 0 CHECK(salario>=0), 8 comision NUMBER(7,2) DEFAULT 0 CHECK(comision>=0), 9 departamento NUMBER(2) CHECK(departamento IN (10,20))); Modificar tablas Cláusula ALTER TABLE
Se utiliza para alterar la definición de uan tabla: Añadiendo o eliminando columnas o restricciones Modificando definiciones de columnas (tipo de datos, Not Null, etc.)
Ejemplo: Agregue la columna teléfono a la tabla emp1.
SQL> ALTER TABLE emp1 ADD telefono CHAR(8); Ejemplo:
La comisión debe ser menor o igual que el salario. Ing. CIP Edwin Iván Farro Pacífico
Pag 3
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
SQL>ALTER TABLE emp1 ADD CHECK(comision<=salario); Ejemplo:
Cambie el tipo de dato de la columna trabajo de CHAR(9) a CHAR(10). SQL> ALTER TABLE emp1 MODIFY trabajo CHAR(10); Ejemplo:
Borrar la clave primaria de la tabla emp1. SQL> ALTER TABLE emp1 DROP PRIMARY KEY; Ejemplo
Agregar el atributo DNI con la restricción UNIQUE. SQL> ALTER TABLE emp1 ADD dni char(8) CONSTRAINT u_dni UNIQUE Eliminar Columnas
Sintaxis: ALTER TABLE nombre_tabla DROP COLUMN nombre_columna; Ejemplo: Elimine la columna teléfono de la tabla emp1; SQL> ALTER TABLE emp1 DROP COLUMN telefono; Renombrar una tabla
El comando RENAME permite renombrar una tabla. Sintaxis; RENAME nombre_tabla TO nombre_nuevo Ejemplo: SQL> RENAME departamento TO dpto1; Renombrar una columna
De la tabla emp1 modificar el nombre del atributo departamento por dpto. sp_rename ‘nombre_tabla.campo ‘,’nombre_tabla.nuevo_nombre’
Ing. CIP Edwin Iván Farro Pacífico
Pag 4
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
Ejercicio 01
Crear la siguiente estructura de tablas de acuerdo a las restricciones que indique el profesor ALUMNO Campo Idalumno Nombalum fingalum
Tipo de dato Varchar2 Varchar2 date
Longitud 5 50
CURSO Campo Idcurso nombcurs
Tipo de dato Varchar2 Varchar2
Longitud 5 50
MATRICULA Campo Idmatricula Idalumno Idcurso Nota1 Nota2 Nota3 prom
Tipo de dato Varchar2 Varchar2 Varchar2 Interger Integer Integer Integer
Longitud 5 5 5
Restricciones No nulo Fecha del sistema
Restricciones No nulo
Restricciones No nulo No nulo Valor por defecto 0 Valor por defecto 0 Valor por defecto 0 Valor por defecto 0
Crear la tabla Alumno
SQL> CREATE TABLE ALUMNO (idalumno varchar2(5) primary key, nombalum varchar2(50) not null, fingalum date default sysdate) Crear la tabla Curso
SQL> CREATE TABLE CURSO (idcurso varchar2(5) primary key, nombcurs varchar2(50) not null)
Ing. CIP Edwin Iván Farro Pacífico
Pag 5
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
Crear la tabla Matricula
SQL> CREATE TABLE MATRICULA (idmatricula varchar2(4) primary key, idalumno varchar2(5) not null, idcurso varchar2(5) not null, nota1 integer default 0, nota2 integer default 0, nota3 integer default 0, prom integer default 0, CONSTRAINT ck_nota1 CHECK(nota1>=0), CONSTRAINT ck_nota2 CHECK(nota2>=0), CONSTRAINT ck_nota3 CHECK(nota3>=0), CONSTRAINT ck_prom CHECK(prom>=0), CONSTRAINT fk_idalumno Foreign Key (idalumno) References alumno(idalumno), CONSTRAINT fk_idcurso Foreign Key (idcurso) References curso(idcurso)) Ejercicio 02 DETA_CONTRATO
#idcontrato #idmodelo descdeta fentrdeta cantdeta precmode
1
CONTRATO # idcontrato fechcont totacont iniccont saldcont (#)idcliente
1,n
1
MODELO #idmodelo descmode precmode 1 INGRESO_MES #idingreso total inicial saldo
Ing. CIP Edwin Iván Farro Pacífico
CLIENTE # idcliente nombclie apatclie amatclie direclie telfclie (#)idrecomendo
1
Pag 6
Universidad Nacional José Faustino Sánchez Carrión
Ing. CIP Edwin Iván Farro Pacífico
CLIENTE Campo idcliente nombclie apatclie amatclie direclie telfclie idrecomendado
Tipo de dato Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Varchar2 Varchar2
Longitud 5 50 30 30 50 8
MODELO Campo Idmodelo descmode Precmode
Tipo de dato Varchar2 Varchar2 Number
Longitud 5 50 10,2
Restricciones PK No nulo >=0
CONTRATO Campo Idcontrato fechcont Totacont saldcont Iniccont idcliente
Tipo de dato Varchar2 Date Number Number Number Varchar2
Longitud 5
Restricciones PK Fecha del sistema >=0 >=0 >=0
DETA_CONTRATO Campo Idmodelo idcontrato Descdeta Fentdeta Precmode cantidad
Tipo de dato Varchar2 Varchar2 Varchar2 Varchar2 Number Number
Longitud 5 5 50 Date 10,2 10
Ing. CIP Edwin Iván Farro Pacífico
Restricciones PK No nulo No nulo No nulo No nulo
5
10,2 10,2 10,2 5
Restricciones PK PK
>=0 >=0
Pag 7