You are on page 1of 16

http://ora.u440.com/dml/update.

html
Crear Tablas Gestin
objetivos
Despus de completar esta leccin, usted debera ser capaz de hacer lo siguiente:
Describir los principales objetos de la base
Crear tablas
Describir los tipos de datos que se pueden utilizar cuando se especifica definicin de columna
definiciones ALTER TABLE
Gota, renombrar y truncar tablas
Objetos de base de datos
objeto Descripcin
Tabla Unidad bsica de almacenamiento; compuesta de filas y columnas
Ver representa Lgicamente subconjuntos de datos de una o ms tablas
Secuencia generador de valor numrico
ndice de Mejora el rendimiento de algunas consultas
Sinnimo de nombres alternativos a los objetos
Normas de denominacin
Los nombres de tabla y nombres de columna:
Debe comenzar con una letra
Debe ser 1-30 caracteres de longitud
Debe contener slo A-Z, a-z, 0-9, _, $ y #
No debe duplicar el nombre de otro objeto propiedad del mismo usuario
No debe ser una palabra servidor Oracle reservados
La sentencia CREATE TABLE
Usted debe tener:
- Privilegio CREATE TABLA
- Un rea de almacenamiento
CREATE TABLE [esquema.] (tipo de datos de columna [expr DEFAULT] [, ...]);
Se especifica:
- Nombre de la tabla
- Nombre de columna, tipo de datos de columna y tamao de la columna
Hacer referencia a las Tablas de otro usuario
Tablas de otros usuarios no estn en el esquema del usuario.
Se debe utilizar el nombre del propietario como prefijo para las tablas.
La opcin por defecto
Especificar un valor predeterminado para una columna en una insercin.
... FECHA hire_date DEFAULT SYSDATE, ...
valores literales, expresiones o funciones de SQL son valores legales.
El nombre de otra columna o una pseudocolumna son valores ilegales.
El tipo de datos predeterminado debe coincidir con el tipo de datos de columna.
Creacin de tablas
Crear la tabla.
CREATE TABLE DEPT
(deptno NMERO (2),

dname VARCHAR2 (14),


loc VARCHAR2 (13));
Tabla creada.
creacin de la tabla Confirmar.
DESCRIBE dept
Las tablas de la base de datos Oracle
Tablas de usuario:
- Son una coleccin de tablas creado y mantenido por el usuario
- Recoger informacin del usuario
Diccionario de datos:
- Es una coleccin de tablas creadas y mantenidas por el servidor Oracle
- Recoger la informacin de base de datos
Consulta del diccionario de datos
Consulte los nombres de las tablas propiedad del usuario.
nombre_tabla SELECT DESDE user_tables;
Ver los tipos de objetos distintos propiedad del usuario.
SELECT DISTINCT tipo_objeto
DESDE USER_OBJECTS;
Ver tablas, vistas, sinnimos, y secuencias de propiedad del usuario.
SELECT *
DESDE user_catalog;
Tipos de datos
Tipo de datos
descripcin
VARCHAR2 (tamao) de longitud variable de datos de carcter
CHAR (tamao) de longitud fija de datos de carcter
NMERO (p, s) de longitud variable de datos numricos
Los valores de fecha de fecha y hora
LARGO longitud variable de datos de caracteres hasta 2 gigabytes
Datos CLOB Carcter de hasta 4 gigabytes
RAW y LONG RAW sin procesar datos binarios
Datos BLOB binarias de hasta 4 gigabytes
BFILE datos binarios almacenados en un archivo externo; hasta 4 gigabytes
ROWID Un sistema de numeracin de base 64 que representa
la direccin nica de una fila en su tabla.
Mejoras de fecha y hora con Oracle9i:
Se han introducido nuevos tipos de datos de fecha y hora.
Nuevo tipo de almacenamiento de datos est disponible.
Se han realizado mejoras a las zonas horarias y la zona horaria local.
Tipo de datos Descripcin
TIMESTAMP Fecha con fracciones de segundo
AO INTERVALO AL MES almacena como un intervalo de aos y meses
DA DE INTERVALOS DE SEGUNDO almacena como un intervalo de das a horas minutos y
segundos

El tipo de datos TIMESTAMP es una extensin de la FECHA


tipo de datos.
Almacena el ao, mes y da del tipo DATE de datos, adems de horas, minutos y segundos
valores, as como el segundo valor fraccionario.
El tipo de datos TIMESTAMP se especifica de la siguiente manera:
TIMESTAMP [(fractional_seconds_precision)]
TIMESTAMP WITH TIME ZONE Tipo de datos

TIMESTAMP WITH TIME ZONE es una variante de la marca de fecha que incluye un
desplazamiento de zona horaria en su valor.
El desplazamiento de zona horaria es la diferencia, en horas y minutos, entre la hora local y UTC.
TIMESTAMP [(fractional_seconds_precision)] CON TIEMPO ZONA
TIMESTAMP CON HORA LOCAL Tipo de datos
TIMESTAMP CON zona horaria local es otra variante de la marca de fecha que incluye un
desplazamiento de zona horaria en su valor.
Los datos almacenados en la base de datos se normalizaron con la zona horaria de base de
datos.
El desplazamiento de zona horaria no se almacena como parte de los datos de columna; Oracle
devuelve los datos de la zona horaria sesin local de los usuarios.
TIMESTAMP CON HORA LOCAL Tipo de datos de la zona se especifica como sigue:
TIMESTAMP [(fractional_seconds_precision)] CON ZONA HORA LOCAL
AO INTERVALO AL MES Tipo de datos
AO INTERVALO AL MES almacena un perodo de tiempo utilizando los campos de fecha y hora
Ao y mes.
INTERVALO DE AO [(year_precision)] A MES
AO INTERVALO '123-2' (3) AL MES
Indica un intervalo de 123 aos y 2 meses.
'123' AO INTERVALO (3)
Indica un intervalo de 123 aos 0 meses.
'300' MES INTERVALO (3)
Indica un intervalo de 300 meses.
'123' AO INTERVALO
Devuelve un error, porque la precisin predeterminada es 2,
y '123' tiene 3 dgitos.
DA DE INTERVALOS DE SEGUNDO Tipo de datos
INTERVALO DE DA PARA SEGUNDO almacena un perodo de tiempo en trminos de das, horas,
minutos y segundos.
DA INTERVALO [(day_precision)]
AL SEGUNDO [(fractional_seconds_precision)]
'4 5: 12: 10.222 "INTERVAL DAY TO SEGUNDO (3)
Indica 4 das, 5 horas, 12 minutos, 10 segundos

y 222/1000 de '123' AO un second.INTERVAL (3).


'7' DAY INTERVALO
Indica 7 das.
'180' DAY INTERVALO (3)
Indica 180 das.
DA DE INTERVALOS DE SEGUNDO Tipo de datos
INTERVALO DE DA PARA SEGUNDO almacena un perodo de tiempo en trminos de das, horas,
minutos y segundos.
'4 5: 12: 10.222 "INTERVAL DAY TO SEGUNDO (3)
Indica 4 das, 5 horas, 12 minutos, 10 segundos
y 222/1000 de segundo.
INTERVALO '4 5:12' DA A MINUTO
Indica 4 das, 5 horas y 12 minutos.
'400 5' DAY INTERVALO (3) A HORA
Indica 400 das 5 horas.
INTERVALO '11: 12: HORA 10.2222222 'A SEGUNDO (7)
indica 11 horas, 12 minutos, y 10,2222222 segundos.
Creacin de una tabla
mediante una sintaxis Subconsulta
Crear una tabla e insertar filas mediante la combinacin de la sentencia CREATE TABLE y la
opcin COMO subconsulta.
CREATE TABLE tabla
[(columna, la columna ...)]
COMO subconsulta;
Haga coincidir el nmero de columnas que especifica el nmero de columnas subconsulta.
Definir las columnas con los nombres de columna y los valores por defecto.
Creacin de una tabla utilizando una subconsulta
TABLA C REAR dept80
COMO
Employee_id SELECT nombre, apellidos,
salario * 12 ANNSAL,
hire_date
Los Empleados
DONDE department_id = 80;
Tabla creada.
DESCRIBE dept80
La sentencia ALTER TABLE
Utilice la sentencia ALTER TABLE para:
Agregar una nueva columna

Modificar una columna existente


Definir un valor predeterminado para la nueva columna
Cada de una columna
La sentencia ALTER TABLE
Utilice la sentencia ALTER TABLE para aadir, modificar o eliminar columnas.
Tabla ALTER TABLE
ADD (tipo de datos de columna [expr DEFAULT]
[, Tipo de datos de columna] ...);
Tabla ALTER TABLE
MODIFICAR (tipo de datos de columna [expr DEFAULT]
[, Tipo de datos de columna] ...);
Tabla ALTER TABLE
DROP (columna);
Adicin de una columna
DEPT80
nueva columna
Agregar una nueva columna a la tabla DEPT80."
DEPT80
Adicin de una columna
Se utiliza la clusula ADD para agregar columnas.
ALTER TABLE dept80
ADD (job_id VARCHAR2 (9));
Tabla alterada.
La nueva columna se convierte en la ltima columna.
Modificacin de una columna
Puede cambiar el tipo de datos, el tamao, y el valor por defecto de una columna.
ALTER TABLE dept80
MODIFICAR (last_name VARCHAR2 (30));
Tabla alterada.
Un cambio en el valor predeterminado slo afecta a las inserciones posteriores a la mesa.
Descartar una columna
Utilice la clusula DROP COLUMN para caer columnas que ya no necesita de la mesa.
ALTER TABLE dept80
DROP job_id COLUMNA;
Tabla alterada.
La opcin no utilizadas
Utilice la opcin SET SIN USAR para marcar una o ms columnas como no utilizado.
Utilice la opcin DROP Las columnas no utilizadas para
quitar las columnas que estn marcados como no utilizados.
Tabla ALTER TABLE
SET SIN USAR (columna);
Oregn

ALTER
TABLA
mesa
SET columna COLUMNA SIN USAR;
Tabla ALTER TABLE
DROP Las columnas no utilizadas;
La eliminacin de una tabla
Se borran todos los datos y la estructura de la tabla.
Las transacciones pendientes estn comprometidos.
Todos los ndices se dejan caer.
No se puede revertir la sentencia DROP TABLE.
DROP dept80 TABLE; Tabla cay.
Cambiar el nombre de un objeto
Para cambiar el nombre de una tabla, vista, secuencia o sinnimo, se ejecuta la sentencia
RENAME.
CAMBIAR EL NOMBRE A dept detail_dept; Tabla renombrado.
Usted debe ser el propietario del objeto.
Truncar una tabla
La instruccin TRUNCATE TABLE:
- Elimina todas las filas de una tabla
- Libera el espacio de almacenamiento utilizado por la mesa
TRUNCATE detail_dept TABLE; Tabla truncado.
No se puede deshacer la eliminacin fila cuando se utiliza
TRUNCATE.
Como alternativa, puede eliminar filas mediante la
DELETE.
Adicin de comentarios a una tabla
Puede aadir comentarios a una tabla o columna utilizando la sentencia COMMENT.
COMENTARIO SOBRE empleados tabla es 'Informacin del empleado'; Comentario creado.
Los comentarios se pueden ver a travs de las vistas del diccionario de datos:
- ALL_COL_COMMENTS
- USER_COL_COMMENTS
- ALL_TAB_COMMENTS
- USER_TAB_COMMENTS
resumen
En esta leccin, debe haber aprendido a utilizar DDL
declaraciones que crean, modifican, caen, y cambiar el nombre de las tablas.
declaracin
descripcin
CREATE TABLE Crea una tabla
ALTER TABLE
Modifica estructuras de tabla

DROP TABLE
Elimina la estructura de filas y mesa
RENAME
Cambia el nombre de una tabla, vista, secuencia o sinnimo
TRUNCATE
Elimina todas las filas de una tabla y libera el espacio de almacenamiento

objetivos
Despus de completar esta leccin, usted debera ser capaz de hacer lo siguiente:
Describir las limitaciones
Crear y mantener restricciones

Cules son las limitaciones?


Restricciones aplican las reglas a nivel de tabla.
Las restricciones impiden la supresin de una mesa si hay dependencias.
Los siguientes tipos de restricciones son vlidas:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CONSULTAR

Directrices de restriccin
Nombre una restriccin o el servidor Oracle genera un nombre con el formato SYS_Cn.
Crear una limitacin ya sea:
- Al mismo tiempo que la tabla se crea, o
- Despus de la tabla se ha creado
Definir una restriccin a nivel de columna o tabla.
Ver una restriccin en el diccionario de datos.

Definicin de restricciones
CREATE TABLE [esquema.]
(tipo de datos de columna [expr DEFAULT]
[column_constraint],
...
[table_constraint] [, ...]);
CREATE TABLE empleados (
employee_id NMERO (6),
first_name VARCHAR2 (20),
...
job_id VARCHAR2 (10) NOT NULL,
emp_emp_id_pk CONSTRAINT
PRIMARY KEY (EMPLOYEE_ID));

Definicin de restricciones
El nivel de restriccin de columna
columna CONSTRAINT_TYPE [CONSTRAINT],
El nivel de restriccin de tabla
columna, ...
[CONSTRAINT] CONSTRAINT_TYPE
(columna, ...),

La restriccin NOT NULL


Asegura que no se permiten valores nulos para la columna:
NO restriccin NULL (No hay fila puede contener un valor nulo para
esta columna).
NOT NULL
restriccin
Ausencia de NOT NULL
restriccin
(Cualquier fila puede contener
nulo para esta columna).

La restriccin NOT NULL


Se define a nivel de columna:
CREATE TABLE empleados (
employee_id NMERO (6),
last_name VARCHAR2 (25) NOT NULL,

NMERO salario (8,2),


NMERO COMMISSION_PCT (2,2),
FECHA hire_date
emp_hire_date_nn CONSTRAINT
NOT NULL,

llamado Sistema
nombre de usuario
EMPLEADOS
restriccin UNIQUE
INSERT INTO
mascotas
No se permiten:
ya existe
Definido ya sea en el nivel de tabla o el nivel de la columna:
CREATE TABLE empleados (
employee_id NMERO (6),
last_name VARCHAR2 (25) NOT NULL,
email VARCHAR2 (25),
NMERO salario (8,2),
NMERO COMMISSION_PCT (2,2),
FECHA hire_date NOT NULL,

CONSTRAINT emp_email_uk UNIQUE (email));

DEPARTAMENTOS
PRIMARY KEY
no se permite
(Valor nulo)
INSERT INTO
no se permite
(50 ya existe)

La PRIMARY KEY restriccin


Definido ya sea en el nivel de tabla o el nivel de la columna:
CREAR departamentos DE MESA (NMERO department_id (4), department_name VARCHAR2 (30)
CONSTRAINT dept_name_nn NOT NULL, NMERO MANAGER_ID (6), NMERO LOCATION_ID (4),
CONSTRAINT dept_id_pk PRIMARY KEY (department_id));

La restriccin de clave externa


DEPARTAMENTOS
PRIMARY KEY
EMPLEADOS
FOREIGN KEY
INSERT INTO No permitido
existir)
mascotas

La restriccin de clave externa


Definido ya sea en el nivel de tabla o el nivel de la columna:

CREATE TABLE empleados (


employee_id NMERO (6),
last_name VARCHAR2 (25) NOT NULL,
email VARCHAR2 (25),
NMERO salario (8,2),
NMERO COMMISSION_PCT (2,2),
FECHA hire_date NOT NULL,
department_id NMERO (4),
CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)
Departamentos REFERENCIAS (DEPARTMENT_ID),
CONSTRAINT emp_email_uk UNIQUE (email));

Restriccin de clave externa


Palabras clave
FOREIGN KEY: Define la columna en la tabla secundaria en el nivel de restriccin de tabla
Referencias: Identifica la tabla y la columna de la tabla primaria
ON DELETE CASCADE: Borra las filas dependientes en la tabla secundaria cuando se elimina una
fila de la tabla padre.
ON DELETE SET NULL: Convierte valores de claves externas dependientes a null

La restriccin CHECK

Define una condicin que cada fila debe satisfacer


Las siguientes expresiones no estn permitidos:
- Referencias a CURRVAL, NEXTVAL, LEVEL, y ROWNUM
pseudocolumnas
- Las llamadas a SYSDATE, UID, el usuario y funciones USERENV
- Las consultas que hacen referencia a otros valores en otras filas
..., NMERO salario (2) emp_salary_min CONSTRAINT
CHECK (salario> 0), ...
.

Adicin de una sintaxis de Restricciones


Utilice la sentencia ALTER TABLE para:
Agregar o eliminar una restriccin, pero no modificar su estructura
Activar o desactivar las restricciones
Agregar una restriccin NOT NULL utilizando el MODIFICAR
clusula
Tabla ALTER TABLE
ADD [CONSTRAINT] tipo (columna);

Adicin de una restriccin


Aadir una restriccin FOREIGN KEY de la tabla EMPLEADOS lo que indica que un gerente debe
existir ya como empleado vlido en la tabla EMPLEADOS.
ALTER TABLE empleados
ADD CONSTRAINT emp_manager_fk
FOREIGN KEY (MANAGER_ID)
REFERENCIAS empleados (EMPLOYEE_ID);

Tabla alterada.

La eliminacin de una restriccin


Elimine el gestor de restriccin de los EMPLEADOS
mesa.
ALTER TABLE empleados
Emp_manager_fk DROP CONSTRAINT;
Tabla alterada.
Retire la restriccin PRIMARY KEY en la tabla DEPARTAMENTOS y soltar el EXTRANJERA
restriccin de clave asociado en la columna de la EMPLOYEES.DEPARTMENT_ID.
ALTER TABLE DROP departamentos CASCADE PRIMARY KEY; Tabla alterada.
Desactivacin de Restricciones

Ejecutar la clusula DISABLE del ALTER TABLE


declaracin para desactivar una restriccin de integridad.
Aplicar la opcin CASCADE para deshabilitar las restricciones de integridad dependientes.
ALTER TABLE
empleados
CONSTRAINT DISABLE emp_emp_id_pk CASCADE;
Tabla alterada.

Habilitar Restricciones
Activar una restriccin de integridad deshabilitado actualmente en la definicin de la tabla
utilizando la clusula ENABLE.
ALTER TABLE empleados HABILITAR emp_emp_id_pk CONSTRAINT; Tabla alterada.
Un ndice de clave primaria o de unicidad se crea automticamente si se habilita una clave de
restriccin UNIQUE o PRIMARY KEY.

Restricciones en Cascada
La clusula CASCADE CONSTRAINTS se utiliza junto con la clusula DROP COLUMN.
La clusula CASCADE CONSTRAINTS cae todas las restricciones de integridad de referencia que se
refieren a las claves principales y nicos definidos en las columnas borradas.
La clusula CASCADE CONSTRAINTS tambin cae todas las restricciones de varias columnas
definidas en las columnas borradas.

Restricciones en Cascada
ejemplo:
ALTER TABLE test1
DROP (pk) OBSTCULOS CASCADE;
Tabla alterada.
ALTER TABLE test1
Eliminar restricciones (pk, fk, col1) CASCADE;
Tabla alterada.
Viendo Restricciones
Consultar la tabla USER_CONSTRAINTS para ver todas las definiciones y nombres de restriccin.
Constraint_name SELECT, CONSTRAINT_TYPE, search_condition
DESDE USER_CONSTRAINTS
DONDE nombre_tabla = "empleados";

Visualizacin de las columnas asociadas a


Restricciones
Ver las columnas asociadas con los nombres de restriccin en la vista USER_CONS_COLUMNS.
Constraint_name SELECT, column_name

DESDE user_cons_columns
DONDE nombre_tabla = "empleados";
resumen
esta leccin, debe haber aprendido a crear restricciones.
Tipos de restricciones:
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CONSULTAR
Puede consultar la tabla USER_CONSTRAINTS para ver todas las definiciones y nombres de
restriccin.

You might also like