CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS. Para crear una tabla utilizamos el lenguaje DDL. El nombre de la tabla puede tener entre 1 y 30 caracter
Author:  Esther Rivas Lagos

8 downloads 70 Views 110KB Size

Recommend Stories


4.5. RESULTADOS Y TABLAS
Estudio de la viscosidad y densidad de diferentes aceites para su uso como biocombustible   4.5. RESULTADOS Y TABLAS Para la explicación de los ensa

Tablas y gráficas Colegio Vizcaya
8. 1 A menudo en periódicos, revistas, televisión..., se muestran datos numéricos relacionados con numerosos aspectos del entorno que nos rodea: evo

BLOQUE III Tablas y gráficas
BLOQUE III Tablas y gráficas 14. Tablas y gráficas 14 Tablas y gráficas 1. Coordenadas cartesianas PIENSA Y CALCULA Los puntos del gráfico se co

Tablas Hash y árboles binarios
Tablas Hash y árboles binarios Algoritmos    Tablas hash Árboles Binarios Árboles Balanceados Tablas Hash Introducción  Las tablas hash so

TABLAS: CARACTERISTICAS DE TUBERIAS
FACTOR 4 Ingenieros Consultores S.L. TABLAS: CARACTERISTICAS DE TUBERIAS. TB TBL CARACTERISTICAS FACTOR 4 Ingenieros Consultores S.L. INDICE TUBE

Story Transcript

CREACIÓN, SUPRESIÓN Y MODIFICACIÓN DE TABLAS. Para crear una tabla utilizamos el lenguaje DDL. El nombre de la tabla puede tener entre 1 y 30 caracteres y no puede ser una palabra reservada de oracle y el primer carácter debe ser alfabético. Su formato es: Formato: - No distingue de mayúsculas y minúsculas. CREATE TABLE nombretabla (columna1 tipo_datos [ NOT NULL ]; columna2 tipo_datos [ NOT NULL ]; ------------) [tablespace espaciotabla]; Para visualizar las tablas creadas utilizamos la vista USER_TABLES select table_name from user_tables Para obtener información de otros objetos de usuario podemos utilizar las vistas USER_OBJECTS y USER_CATALOG Integridad de datos. Hace referencia al hecho de que los datos de la base de datos han de ajustarse a unas restricciones antes de almacenarse en la misma. Si un usuario cambia datos en la base de datos y estos no son correctos, Oracle se encargará de deshacer o cancelar esas transacciones. La integridad referencial garantiza que los valores de una columna de una tabla dependen de los valores de otra columna de otra tabla (claves ajenas). Restricciones. Las restricciones sirven para que oracle realice la mayor parte de las tareas de mantenimiento de la integridad de la base de datos. Para definir las restricciones en oracle se utiliza la cláusula CONSTRAINT. Formato 1: (restricción de columna) CREATE TABLE nombre_tabla ( Columna1 tipo_de_dato [ CONSTRAINT nombre_restricción] [ NOT NULL] [ UNIQUE ] [ PRIMARY KEY ] [ DEFAULT valor] [ REFERENCE nombre_tabla [ (columna [, columna] ) ] [ ON DELETE CASCADE ] ] [ CHECK condición ], Columna2 tipo_de_dato

) [ TABLESPACE nombre]; Ejemplo: CREATE TABLE empleados ( Nombre VARCHAR2(25) PRIMARY KEY, Edad NUMBER(2) CHECK (Edad BETWEEN 18 AND 25), Cod_provincia NUMBER(2) REFERENCES PROVINCIAS ON DELETE CASCADE); CREATE TABLE provincias ( Cod_prov NUMBER(2) PRIMARY KEY, Nombre_prov VARCHAR2 (20)); CREATE TABLE empleado ( DNI NUMBER(8) PRIMARY KEY, Nombre VARCHAR2(25), Dirección VARCHAR2(25), Población VARCHAR2(20), Cod_provincia NUMBER(2) NOT NULL REFERENCES PROVINCIAS ); Formato 2: (restricción de tabla) CREATE TABLE nombre ( Columna1 tipo_de_dato, Columna2 tipo_de_dato, --------------[CONSTRAINT nombre_restricción] { [UNIQUE] [PRIMARY KEY] (columna [,columna] ) }, [CONSTRAINT nombre_restricción] [FOREIGN KEY (columna [,columna] ) REFERENCES nombre_tabla [ (columna [,columna] ) ] [ ON DELETE CASCADE], [CONSTRAINT nombre_restrición] [CHECK (condición)] ) [TABLESPACE nombre]; Ejemplo: Drop table empleados; CREATE TABLE empleados ( Nombre VARCHAR2(25) , Edad NUMBER(2) , Cod_provincia NUMBER(2), CONSTRAINT PK_EMPLEADOS PRIMARY KEY (Nombre), CONSTRAINT CK_EDAD CHECK (Edad BETWEEN 18 AND 25), CONSTRAINT FK_EMPLEADO FOREIGN KEY (Cod_provincia)

REFERENCES PROVINCIAS ON DELETE CASCADE); Primero se crea la tabla maestra y luego la tabla detalle, si queremos borrar las tablas, primero borramos la tabla detalle y luego la maestra. Si queremos borrar alguna provincia de la tabla provincia y que las filas correspondientes sean elimindas añadimos la cláusula ON DELETE CASCADE en la opción REFERENCES . Oracle asigna por defecto un nombre a las restricciones cuyo formato es nombre de usuario.SYS_C00132H siempre que no hayamos dado un nombre a esta restricción. Nº Ejercicio 1. Hacer dos inserciones idénticas en la tabla empleado.

Hacer lo mismo con la tabla provincias. En la tabla empleados insertar un código de provincia que no exista en provincias de dos formas: - Utilizando una restricción con nombre y otra sin nombre. Restricción PRIMARY KEY (clave primaria). Columna o conjunto de columnas que identifican inequívocamente a cada fila de la tabla. Es única no nula y obligatoria esta clave se puede referenciar por una columna o columnas de otra tabla ( clave ajena). Cuando se crea una clave primaria ORACLE crea un índice para acceder a la tabla.

Restricción FOREIGN KEY (clave ajena) Formada por una o varias columnas asociadas a una clave primaria de otra o de la misma tabla, pueden definirse tantas como sea preciso y el valor de esta tabla debe ser null o igual al valor de una clave referenciada. Obligatoriedad. La restricción NOT NULL. Asociada a una columna significa que no puede tener valores nulos. Valores por defecto. La restricción DEFAULT. Al crear una tabla podemos asignar valores a las columnas por defecto. Ejemplo: Crear una tabla que tiene un campo fecha y un campo usuario, de manera que por defecto tiene los valores fecha del sistema y usuario conectado. Hacer una inserción sin el campo fecha y sin el campo usuario y comprobar el resultado

Verificación de condiciones. La restricción CHECK. Permite expresar una condición que ha de cumplirse para todas y cada una de las filas de la tabla. Ejemplo: Crear una tabla que tiene los campos DNI, nombre, edad y curso, de forma que el DNI no puede ser nulo y es la clave, el nombre no puede ser nulo, la edad ha de estar comprendida entre 5 y 20 años, el nombre ha de estar en mayúsculas y el curso solo puede tener los valores 1, 2 y 3. Insertar filas en la tabla haciendo que fallen todas las restricciones. Restricción UNIQUE. Es similar a la restricción PRIMARY KEY, salvo que es posible definir varias columnas con esta restricción y que puede admitir valores nulos. Vistas del diccionario de datos para las restricciones.  USER_CONSTRAINTS  contiene las definiciones de las restricciones de las tablas que son propiedad del usuario.  ALL_CONSTRAINTS  contiene las definiciones de las restricciones sobre las tablas a las que puede acceder el usuario.  DBA_CONSTRAINTS  contiene todas las definiciones de restricciones sobre todas las tablas. Ejercicio: Visualizar las restricciones de la tabla ejemplo, especificando el nombre de la restricción, el nombre de la tabla y el tipo de restricción.  USER_CONS_COLUMNS  contiene información sobre las restriciones de las columnas de las tablas del usuario.  ALL_CONS_COLUMNS  contiene información de las restricciones de columnas de las tablas a las que puede acceder el usuario.  DBA_CONS_COLUMNS  contiene información sobre restricciones de columnas. Ejercicio: Ver las restricciones definidas en la tabla ejemplo, sacando el nombre de la restricción, el nombre de la tabla y el nombre de la columna.

Creación de una tabla con datos recuperados de una consulta. Permite crear una tabla a partir de la consulta de otra tabla. La nueva tabla contendrá los datos obtenidos de la consulta. Su formato es: CREATE TABLE nombre ( Columna [ ,columna ] AS consulta; No es necesario especificar tipos ni tamaños de las columnas, ya que vienen determinados por los tipos y tamaños de los datos recuperados en la consulta. La restricciones con nombre no se crean en una tabla desde la otra , solo se crean aquellas restricciones que carecen de nombre. Ejercicio Crear la tabla ejemplo2 a partir de la tabla ejemplo del ejercicio anterior. Hacer lo mismo pero dando un nombre a las columnas. Crear la tabla empleydepart a partir de las mismas tablas de tal forma que esta tabla contendrá el nombre del departamento de cada empleado de la empresa. Listar las restricciones de las tablas ejemplo2 y ejemplo3. Explicarlo SUPRESIÓN DE TABLAS Cada usuario puede borrar sus propias tablas, y solo el administrador o algún usuario que tenga el privilegio DROP ANY TABLE pueden borrar tablas de otros usuarios. El formato de esta instrucción es: DROP TABLE [usuario.] nombre_tabla [CASCADE CONSTRAINTS]; Esta cláusula ( CASCADE CONSTRAINTS ) elimina las restricciones de integridad referencial que remitan a la clave primaria de la tabla borrada. Orden TRUNCATE Permite suprimir filas de una tabla y liberar el espacio ocupado para otros usos sin que desaparezca la definición de la tabla de la base de datos. Su formato es: TRUNCATE TABLE [ usuario.] nombre_tabla; MODIFICACIÓN DE TABLAS Se pueden modificar tablas de dos formas: cambiando la definición de una columna o añadiendo una columna a una tabla ya existente. La orden que se utiliza es:

ALTER TABLE nombre_tabla {[ ADD( columna [, columna]...)] [ MODIFY ( columna [, columna]...)] [ ADD CONSTRAINT restricción] [ DROP CONSTRAINT restricción] [ DROP COLUMN nombre] [ DISABLE CONSTRAINT nombre restriccion] [ENABLE CONSTRAINT nombrestricción]}; ADD – añade una columna o más al final de una tabla MODIFY – modifica una o más columnas existentes en la tabla. ADD CONSTRAINT – añade una restricción a la definición de una tabla DROP CONSTRAINT – elimina una restricción de la tabla. DROP COLUMN – elimina una columna. DISABLE CONSTRAINT deshabilita una restricción. Nota – Si la tabla está vacía se pueden añadir columnas con la restricción not null, pero sino está vacía da error. Ejercicio1 Añadir a la tabla ejemplo las columnas sexo e importe. Normas para añadir una columna a una tabla:  Si la columna no esta definida como NOT NULL se añade sin problemas.  Si la columna está definida como NOT NULL se añade primero una columna sin especificar NOT NULL, después se le da valor a la columna para cada una de las filas y finalmente se modifica la columna a NOT NULL. Normas para modificar una columna de una tabla:  Se puede aumentar la longitud de una columna en cualquier momento.  Es posible aumentar o disminuir el número de posiciones decimales en una columna de tipo NUMBER.  Si la columna es NULL en todas las filas de la tabla, se puede disminuir la longitud y modificar el tipo de dato.  La opción MODIFY para poner una columna a NOT NULL solo será posible cuando la tabla no contenga ninguna fila con valor nulo en la columna que se modifique. Ejercicio2 Añadir la restricción de apellido único a la tabla emple. Añadir la restricción de comisión no nula a la tabla emple. Añadir la restricción de apellido no nulo a la tabla emple.

Ver las restricciones de la tabla emple. Borrar dos de las restricciones de la tabla emple, una con nombre dado por vosotros y otra asignada por oracle. Visualizar de nuevo las restricciones. CREACIÓN Y USO DE VISTAS Una vista es una tabla lógica que permite acceder a la información de una o varias tablas. No contiene información por si misma, sino que su información esta basada en la que contienen otras tablas, que se denominan tablas base y siempre reflejará los datos de estas tablas. Si se suprime una tabla la vista asociada se invalida. Tiene la misma estructura que una tabla y se manejan igual que una tabla. Formato de creación de una vista Su formato es: CREATE [OR REPLACE] VIEW nombre_vista [(columna [, columna] ) ] AS consulta [WITH {CHECK OPTION | READ ONLY} CONSTRAINT nombrerestriccion]; Si no se pone el nombre de las columnas se asumen las columnas devueltas por la consulta. Consulta va a ser lo que va a determinan las columnas y las tablas que aparecen en la vista. La cláusula OR REPLACE crea de nuevo una vista si ya existía La opción WITH CHECK OPTION asegura que las filas resultantes al hacer insert o update satisfagan el criterio de búsqueda de la definición de la vista. Con la opción READ ONLY solo se puede hacer select de la vista. Ejercicio Crear una vista que se llame dept30 que contenga el apellido, el oficio y el salario de los empleados de la tabla emple que pertenezcan al departamento 30. Hacer una descripción de la vista y de su contenido. CREATE OR REPLACE VIEW DEPT30 AS SELECT APELLIDO,OFICIO , SALARIO FROM EMPLE WHERE DEPT_NO=30 DESC DEPT30; Crear una vista que se llame dept30 que contenga el apellido, el oficio y el salario de los empleados ,nombre de la tabla emple,depart que pertenezcan al departamento 30. Hacer una descripción de la vista y de su contenido

create or replace view dept30 as select apellido, oficio,salario,dnombre from emple,depart where emple.dept_no =30 and emple.dept_no= depart.dept_no ; Hacer lo mismo pero dando nombre a los campos de la vista (columnas).

Para consultar las vistas que tiene un usurario se utiliza USER_VIEWS. Al borrar una tabla que esta asociada a una vista, esta queda inutilizada. Si ejecutamos la orden: SELECT VIEW_NAME FROM USER_VIEWS Veremos que la vista existe pero no podremos hacer nada con ella. Por tanto será mejor que la borremos con la orden: DROP VIEW nombre_vista Operaciones sobre vistas Son las mismas que podemos utilizar sobre las tablas, pero con las siguientes restricciones:  Consultas  las consultas se hacen exactamente igual que con una tabla. Ejemplo Consultar los apellidos de los vendedores de la vista dept30  Actualización  si la vista esta basada en una sola tabla, se pueden modificar las filas de la vista. En realidad lo que se hace es actualizar las filas de la tabla. Ejemplo Modificar la vista dept30 poniendo el apellido MARTÍN a minúsculas y el salario a 200.000. Consultar la tabla y la vista  Inserción  en principio se puede hacer la inserción sin problemas, pero siempre teniendo en cuenta la posibilidad de que haya campos no nulos. Ejemplo Insertar una fila en la vista dept30 Crear una vista que se llame Vdep, a partir de la tabla depart, que contenga número de departamento y el nombre e insertar la fila 55 informática.

 Borrado  se puede eliminar igual que en una tabla Ejemplo Borrar el departamento 55 de la vista Vdep y comprobar que pasa con la tabla. Restricciones a considerar en el borrado, actualización e inserción de una tabla a través de una vista. - Borrado de filas a través de una vista. Para borrar filas de una tabla a través de una vista, esta se debe crear: 1. Con filas de una sola tabla 2. Sin utilizar las cláusulas GROUP BY ni DISTINCT 3. Sin usar funciones de grupo o referencias a pseudocolumnas. - Actualización de filas a través de una vista. Para actualizar filas de una tabla a través de una vista, esta ha de estar definida por las restricciones anteriores y además ninguna de las columnas que se va a actualizar se habrá definido como expresión. - Inserción Se tienen en cuenta las restricciones anteriores y además todas las columnas obligatorias en la tabla deben estar presentes en la vista. Vistas definidas sobre más de una tabla Ejercicio A partir de las tala emple y depart crear una vista que contenga número de empleado, apellido, número de departamento y nombre de departamento. Intentar insertar, borrar y modificar alguna fila de la vista. Manejo de expresiones y de funciones con vistas Se pueden crear vistas usando funciones, expresiones en columnas y consultas avanzadas, pero únicamente se podrán consultar estas vistas. Ejercicio Crear la vista pagos a partir de emple, cuyo departamento sea el 10, las columnas de las vistas serán: nombre, sal_mes, sal_an, dept_no. El nombre se corresponde con la columna apellido, pero tendrá la primera letra en mayúsculas y las demás en minúsculas. Insertar datos.

Modificar la vista pagos, cambiando el sal_mes a 500000 a los que no pasen de 500000 y sean del departamento 10. Crear la vista vmedia a partir de las tablas emple y depart que contendrá por cada departamento el dept_no, dnombre, med_salario, y el salario máximo.

CREACIÓN DE SINÓNIMOS Creación de sinónimos Un sinónimo es un nuevo nombre que se puede dar a una tabla o vista. Mediante los sinónimos podremos utilizar dos nombres para referirnos a un mismo objeto. Formato: CREATE [PUBLIC] SYNONYM nombre FOR [usuario] nombre_tabla; L a cláusula PUBLIC hace que el sinónimo este disponible para todos los usuarios. Solo el administrador de la base de datos y los usuarios con privilegio CREATE PUBLIC SYNONYM pueden crear sinónimos públicos. Borrado de sinónimos Formato: DROP [PUBLIC] SYNONYM [usuario] sinónimo; Solo el administrador de la base de datos y los usuarios con privilegio DROP PUBLIC SYNONYM pueden suprimir sinónimos públicos. Y solo los administradores de la base de datos o los usuarios con el privilegio DROP ANY SYNONYM pueden borrar sinónimos públicos y los de otros usuarios. Ejercicio Crear el sinónimo departamento asociado a la tabla depart. Visualizar la tabla y el sinónimo. CAMBIO DE NOMBRES Para cambiar el nombre a una tabla, vista o sinónimo se utiliza la siguiente orden: RENAME nombre_antigüo TO nombre_nuevo Las restricciones de integridad, los índices y los permisos dados al objeto se transfieren automáticamente al nuevo objeto. Oracle invalida todos los objetos que

dependen del objeto renombrado, como las vistas que hagan referencia a la tabla renombrada. No se pueden usar esta orden para renombrar sinónimos públicos ni para renombrar columnas de una tabla. Ejercicio Crear un sinónimo de la tabla alumnos llamado ALM y cambiar el nombre de alumnos por TALUMNOS.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.