UNIVERSIDAD NACIONAL JOSE FAUSTINO SANCHEZ CARRION
FACULTAD DE INGENIERIA INDUSTRIAL, SISTEMAS E INFORMATICA
ESCUELA ACADEMICO PROFESIONAL DE INGENIERIA INFORMATICA
CURSO BASE DE DATOS II
ORACLE 11g - IMPLEMENTACION SEPARATA Nº 02 TABLAS
DOCENTE MG ING. EDWIN EDWIN IVAN FARRO PACIFICO PACIFICO
HUACHO-LIMA PERU
Universidad Nacional José Faustino Sánchez Carrión
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.
Mg. Ing. Edwin Iván Farro Pacífico
Pag 2
Universidad Nacional José Faustino Sánchez Carrión 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. Campo codigo Nombre Cargo Jefe ingreso Salario Comisión departamento
Tipo de dato Number Varachar2 Varachar2 Number Date Number Number Number
longitud 4 10 9 4 7,2 7,2 2
restriccción PK UNICO NO NULO NULO Fecha del sistema por defecto Salario>=0 Comisión>=0 Solo acepta10 o 20
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
Mg. Ing. Edwin Iván Farro Pacífico
Pag 3
Universidad Nacional José Faustino Sánchez Carrión
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. 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
Mg. Ing. Edwin Iván Farro Pacífico
Pag 4
Universidad Nacional José Faustino Sánchez Carrión 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’ 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
Mg. Ing. Edwin Iván Farro Pacífico
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
Pag 5
Universidad Nacional José Faustino Sánchez Carrión 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) 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))
Mg. Ing. Edwin Iván Farro Pacífico
Pag 6
Universidad Nacional José Faustino Sánchez Carrión 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
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
Mg. Ing. Edwin Iván Farro Pacífico
CLIENTE # idcliente nombclie apatclie amatclie direclie telfclie (#)idrecomendo
1
Restricciones PK No nulo No nulo No nulo No nulo
5
Restricciones PK No nulo >=0
Pag 7
Universidad Nacional José Faustino Sánchez Carrión CONTRATO Campo Idcontrato fechcont Totacont saldcont Iniccont idcliente
Tipo de dato Varchar2 Date Number Number Number Varchar2
Longitud 5
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
Mg. Ing. Edwin Iván Farro Pacífico
10,2 10,2 10,2 5
Restricciones PK Fecha del sistema >=0 >=0 >=0
Restricciones PK PK
>=0 >=0
Pag 8