base de datos

16
http://ora.u440.com/dml/update.html Crear Tablas Gestión objetivos Después de completar esta lección, usted debería 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 definición de columna • definiciones ALTER TABLE • Gota, renombrar y truncar tablas Objetos de base de datos objeto Descripción Tabla Unidad básica de almacenamiento; compuesta de filas y columnas Ver representa Lógicamente subconjuntos de datos de una o más tablas Secuencia generador de valor numérico Índice de Mejora el rendimiento de algunas consultas Sinónimo de nombres alternativos a los objetos Normas de denominación Los nombres de tabla y nombres de columna: • Debe comenzar con una letra • Debe ser 1-30 caracteres de longitud • Debe contener sólo 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 tamaño de la columna Hacer referencia a las Tablas de otro usuario • Tablas de otros usuarios no están en el esquema del usuario. • Se debe utilizar el nombre del propietario como prefijo para las tablas. La opción por defecto • Especificar un valor predeterminado para una columna en una inserción. ... 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. Creación de tablas • Crear la tabla. CREATE TABLE DEPT (deptno NÚMERO (2),

Upload: wilson-cerrato

Post on 25-Dec-2015

7 views

Category:

Documents


1 download

DESCRIPTION

oracle

TRANSCRIPT

Page 1: Base de Datos

http://ora.u440.com/dml/update.html Crear Tablas Gestión objetivos Después de completar esta lección, usted debería 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 definición de columna • definiciones ALTER TABLE • Gota, renombrar y truncar tablas Objetos de base de datos objeto Descripción Tabla Unidad básica de almacenamiento; compuesta de filas y columnas Ver representa Lógicamente subconjuntos de datos de una o más tablas Secuencia generador de valor numérico Índice de Mejora el rendimiento de algunas consultas Sinónimo de nombres alternativos a los objetos Normas de denominación Los nombres de tabla y nombres de columna: • Debe comenzar con una letra • Debe ser 1-30 caracteres de longitud • Debe contener sólo 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 tamaño de la columna Hacer referencia a las Tablas de otro usuario • Tablas de otros usuarios no están en el esquema del usuario. • Se debe utilizar el nombre del propietario como prefijo para las tablas. La opción por defecto • Especificar un valor predeterminado para una columna en una inserción. ... 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. Creación de tablas • Crear la tabla. CREATE TABLE DEPT (deptno NÚMERO (2),

Page 2: Base de Datos

dname VARCHAR2 (14), loc VARCHAR2 (13)); Tabla creada. • creación de la tabla Confirmar. DESCRIBE dept Las tablas de la base de datos Oracle • Tablas de usuario: - ¿Son una colección de tablas creado y mantenido por el usuario - Recoger información del usuario • Diccionario de datos: - Es una colección de tablas creadas y mantenidas por el servidor Oracle - Recoger la información 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, sinónimos, y secuencias de propiedad del usuario. SELECT * DESDE user_catalog; Tipos de datos Tipo de datos descripción VARCHAR2 (tamaño) de longitud variable de datos de carácter CHAR (tamaño) de longitud fija de datos de carácter NÚMERO (p, s) de longitud variable de datos numéricos Los valores de fecha de fecha y hora LARGO longitud variable de datos de caracteres hasta 2 gigabytes Datos CLOB Carácter 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 numeración de base 64 que representa la dirección ú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 Descripción TIMESTAMP Fecha con fracciones de segundo AÑO INTERVALO AL MES almacena como un intervalo de años y meses DÍA DE INTERVALOS DE SEGUNDO almacena como un intervalo de días a horas minutos y segundos

Page 3: Base de Datos

• El tipo de datos TIMESTAMP es una extensión de la FECHA tipo de datos. • Almacena el año, mes y día del tipo DATE de datos, además 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 sesión 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 AÑO INTERVALO AL MES Tipo de datos • AÑO INTERVALO AL MES almacena un período de tiempo utilizando los campos de fecha y hora Año y mes. INTERVALO DE AÑO [(year_precision)] A MES AÑO INTERVALO '123-2' (3) AL MES Indica un intervalo de 123 años y 2 meses. '123' AÑO INTERVALO (3) Indica un intervalo de 123 años 0 meses. '300' MES INTERVALO (3) Indica un intervalo de 300 meses. '123' AÑO INTERVALO Devuelve un error, porque la precisión predeterminada es 2, y '123' tiene 3 dígitos. DÍA DE INTERVALOS DE SEGUNDO Tipo de datos • INTERVALO DE DÍA PARA SEGUNDO almacena un período de tiempo en términos de días, horas, minutos y segundos. DÍA INTERVALO [(day_precision)] AL SEGUNDO [(fractional_seconds_precision)] '4 5: 12: 10.222 "INTERVAL DAY TO SEGUNDO (3) Indica 4 días, 5 horas, 12 minutos, 10 segundos

Page 4: Base de Datos

y 222/1000 de '123' AÑO un second.INTERVAL (3). '7' DAY INTERVALO Indica 7 días. '180' DAY INTERVALO (3) Indica 180 días. DÍA DE INTERVALOS DE SEGUNDO Tipo de datos • INTERVALO DE DÍA PARA SEGUNDO almacena un período de tiempo en términos de días, horas, minutos y segundos. '4 5: 12: 10.222 "INTERVAL DAY TO SEGUNDO (3) Indica 4 días, 5 horas, 12 minutos, 10 segundos y 222/1000 de segundo. INTERVALO '4 5:12' DÍA A MINUTO Indica 4 días, 5 horas y 12 minutos. '400 5' DAY INTERVALO (3) A HORA Indica 400 días 5 horas. INTERVALO '11: 12: HORA 10.2222222 'A SEGUNDO (7) indica 11 horas, 12 minutos, y 10,2222222 segundos. Creación de una tabla mediante una sintaxis Subconsulta • Crear una tabla e insertar filas mediante la combinación de la sentencia CREATE TABLE y la opción COMO subconsulta. CREATE TABLE tabla [(columna, la columna ...)] COMO subconsulta; • Haga coincidir el número de columnas que especifica el número de columnas subconsulta. • Definir las columnas con los nombres de columna y los valores por defecto. Creación 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

Page 5: Base de Datos

• Modificar una columna existente • Definir un valor predeterminado para la nueva columna • Caída de una columna La sentencia ALTER TABLE Utilice la sentencia ALTER TABLE para añadir, 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); Adición de una columna DEPT80 nueva columna Agregar una nueva columna a la tabla DEPT80." DEPT80 Adición de una columna • Se utiliza la cláusula ADD para agregar columnas. ALTER TABLE dept80 ADD (job_id VARCHAR2 (9)); Tabla alterada. • La nueva columna se convierte en la última columna. Modificación de una columna • Puede cambiar el tipo de datos, el tamaño, y el valor por defecto de una columna. ALTER TABLE dept80 MODIFICAR (last_name VARCHAR2 (30)); Tabla alterada. • Un cambio en el valor predeterminado sólo afecta a las inserciones posteriores a la mesa. Descartar una columna Utilice la cláusula DROP COLUMN para caer columnas que ya no necesita de la mesa. ALTER TABLE dept80 DROP job_id COLUMNA; Tabla alterada. La opción no utilizadas • Utilice la opción SET SIN USAR para marcar una o más columnas como no utilizado. • Utilice la opción DROP Las columnas no utilizadas para quitar las columnas que están marcados como no utilizados. Tabla ALTER TABLE SET SIN USAR (columna); Oregón

Page 6: Base de Datos

ALTER TABLA mesa SET columna COLUMNA SIN USAR; Tabla ALTER TABLE DROP Las columnas no utilizadas; La eliminación de una tabla • Se borran todos los datos y la estructura de la tabla. • Las transacciones pendientes están 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 sinónimo, 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 instrucción 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 eliminación fila cuando se utiliza TRUNCATE. • Como alternativa, puede eliminar filas mediante la DELETE. Adición de comentarios a una tabla • Puede añadir comentarios a una tabla o columna utilizando la sentencia COMMENT. COMENTARIO SOBRE empleados tabla es 'Información del empleado'; Comentario creado. • Los comentarios se pueden ver a través de las vistas del diccionario de datos: - ALL_COL_COMMENTS - USER_COL_COMMENTS - ALL_TAB_COMMENTS - USER_TAB_COMMENTS resumen En esta lección, debe haber aprendido a utilizar DDL declaraciones que crean, modifican, caen, y cambiar el nombre de las tablas. declaración descripción CREATE TABLE Crea una tabla ALTER TABLE Modifica estructuras de tabla

Page 7: Base de Datos

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

objetivos

Después de completar esta lección, usted debería ser capaz de hacer lo siguiente:

• Describir las limitaciones

• Crear y mantener restricciones

¿Cuáles son las limitaciones?

• Restricciones aplican las reglas a nivel de tabla.

• Las restricciones impiden la supresión de una mesa si hay dependencias.

• Los siguientes tipos de restricciones son válidas:

- NOT NULL

- UNIQUE

- PRIMARY KEY

- FOREIGN KEY

- CONSULTAR

Page 8: Base de Datos

Directrices de restricción

• Nombre una restricción o el servidor Oracle genera un nombre con el formato SYS_Cn.

• Crear una limitación ya sea:

- Al mismo tiempo que la tabla se crea, o

- Después de la tabla se ha creado

• Definir una restricción a nivel de columna o tabla.

• Ver una restricción en el diccionario de datos.

Definición de restricciones

CREATE TABLE [esquema.]

(tipo de datos de columna [expr DEFAULT]

[column_constraint],

...

[table_constraint] [, ...]);

CREATE TABLE empleados (

employee_id NÚMERO (6),

first_name VARCHAR2 (20),

...

job_id VARCHAR2 (10) NOT NULL,

emp_emp_id_pk CONSTRAINT

PRIMARY KEY (EMPLOYEE_ID));

Page 9: Base de Datos

Definición de restricciones

• El nivel de restricción de columna

columna CONSTRAINT_TYPE [CONSTRAINT],

• El nivel de restricción de tabla

columna, ...

[CONSTRAINT] CONSTRAINT_TYPE

(columna, ...),

La restricción NOT NULL

Asegura que no se permiten valores nulos para la columna:

NO restricción NULL (No hay fila puede contener un valor nulo para

esta columna).

NOT NULL

restricción

Ausencia de NOT NULL

restricción

(Cualquier fila puede contener

nulo para esta columna).

La restricción NOT NULL

Se define a nivel de columna:

CREATE TABLE empleados (

employee_id NÚMERO (6),

last_name VARCHAR2 (25) NOT NULL,

Page 10: Base de Datos

NÚMERO salario (8,2),

NÚMERO COMMISSION_PCT (2,2),

FECHA hire_date

emp_hire_date_nn CONSTRAINT

NOT NULL,

llamado Sistema

nombre de usuario

EMPLEADOS

restricción 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 NÚMERO (6),

last_name VARCHAR2 (25) NOT NULL,

email VARCHAR2 (25),

NÚMERO salario (8,2),

NÚMERO COMMISSION_PCT (2,2),

FECHA hire_date NOT NULL,

CONSTRAINT emp_email_uk UNIQUE (email));

Page 11: Base de Datos

DEPARTAMENTOS

PRIMARY KEY

no se permite

(Valor nulo)

INSERT INTO

no se permite

(50 ya existe)

La PRIMARY KEY restricción

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

CREAR departamentos DE MESA (NÚMERO department_id (4), department_name VARCHAR2 (30)

CONSTRAINT dept_name_nn NOT NULL, NÚMERO MANAGER_ID (6), NÚMERO LOCATION_ID (4),

CONSTRAINT dept_id_pk PRIMARY KEY (department_id));

La restricción de clave externa

DEPARTAMENTOS

PRIMARY KEY

EMPLEADOS

FOREIGN KEY

INSERT INTO No permitido

existir)

mascotas

La restricción de clave externa

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

Page 12: Base de Datos

CREATE TABLE empleados (

employee_id NÚMERO (6),

last_name VARCHAR2 (25) NOT NULL,

email VARCHAR2 (25),

NÚMERO salario (8,2),

NÚMERO COMMISSION_PCT (2,2),

FECHA hire_date NOT NULL,

department_id NÚMERO (4),

CONSTRAINT emp_dept_fk FOREIGN KEY (department_id)

Departamentos REFERENCIAS (DEPARTMENT_ID),

CONSTRAINT emp_email_uk UNIQUE (email));

Restricción de clave externa

Palabras clave

• FOREIGN KEY: Define la columna en la tabla secundaria en el nivel de restricción 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 restricción CHECK

Page 13: Base de Datos

• Define una condición que cada fila debe satisfacer

• Las siguientes expresiones no están 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

..., NÚMERO salario (2) emp_salary_min CONSTRAINT

CHECK (salario> 0), ...

.

Adición de una sintaxis de Restricciones

Utilice la sentencia ALTER TABLE para:

• Agregar o eliminar una restricción, pero no modificar su estructura

• Activar o desactivar las restricciones

• Agregar una restricción NOT NULL utilizando el MODIFICAR

cláusula

Tabla ALTER TABLE

ADD [CONSTRAINT] tipo (columna);

Adición de una restricción

Añadir una restricción FOREIGN KEY de la tabla EMPLEADOS lo que indica que un gerente debe

existir ya como empleado válido en la tabla EMPLEADOS.

ALTER TABLE empleados

ADD CONSTRAINT emp_manager_fk

FOREIGN KEY (MANAGER_ID)

REFERENCIAS empleados (EMPLOYEE_ID);

Page 14: Base de Datos

Tabla alterada.

La eliminación de una restricción

• Elimine el gestor de restricción de los EMPLEADOS

mesa.

ALTER TABLE empleados

Emp_manager_fk DROP CONSTRAINT;

Tabla alterada.

• Retire la restricción PRIMARY KEY en la tabla DEPARTAMENTOS y soltar el EXTRANJERA

restricción de clave asociado en la columna de la EMPLOYEES.DEPARTMENT_ID.

ALTER TABLE DROP departamentos CASCADE PRIMARY KEY; Tabla alterada.

Desactivación de Restricciones

• Ejecutar la cláusula DISABLE del ALTER TABLE

declaración para desactivar una restricción de integridad.

• Aplicar la opción CASCADE para deshabilitar las restricciones de integridad dependientes.

ALTER TABLE

empleados

CONSTRAINT DISABLE emp_emp_id_pk CASCADE;

Tabla alterada.

Habilitar Restricciones

• Activar una restricción de integridad deshabilitado actualmente en la definición de la tabla

utilizando la cláusula ENABLE.

ALTER TABLE empleados HABILITAR emp_emp_id_pk CONSTRAINT; Tabla alterada.

• Un índice de clave primaria o de unicidad se crea automáticamente si se habilita una clave de

restricción UNIQUE o PRIMARY KEY.

Page 15: Base de Datos

Restricciones en Cascada

• La cláusula CASCADE CONSTRAINTS se utiliza junto con la cláusula DROP COLUMN.

• La cláusula 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 cláusula CASCADE CONSTRAINTS también cae todas las restricciones de varias columnas

definidas en las columnas borradas.

Restricciones en Cascada

ejemplo:

ALTER TABLE test1

DROP (pk) OBSTÁCULOS 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 restricción.

Constraint_name SELECT, CONSTRAINT_TYPE, search_condition

DESDE USER_CONSTRAINTS

DONDE nombre_tabla = "empleados";

Visualización de las columnas asociadas a

Restricciones

Ver las columnas asociadas con los nombres de restricción en la vista USER_CONS_COLUMNS.

Constraint_name SELECT, column_name

Page 16: Base de Datos

DESDE user_cons_columns

DONDE nombre_tabla = "empleados";

resumen

esta lección, 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

restricción.