Sie sind auf Seite 1von 14

Oracle es una potente herramienta cliente/servidor para la gestin de BD.

Oracle es bsicamente una herramienta cliente/servidor para la gestin de Bases de Datos. Primero sera necesario la instalacin de la herramienta servidor (Oracle 8i) y posteriormente podramos atacar a la base de datos desde otros equipos con herramientas de desarrollo como Oracle Designer y Oracle Developer, que son las herramientas bsicas de programacin sobre Oracle. Para desarrollar en Oracle utilizamos PL/SQL un lenguaje de 5 generacin, bastante potente para tratar y gestionar la base de datos, tambin por norma general se suele utilizar SQL al crear un formulario.

Es posible lgicamente atacar a la base de datos a travs del SQL plus incorporado en el paquete de programas Oracle para poder realizar consultas, utilizando el lenguaje SQL. El Developer es una herramienta que nos permite crear formularios en local, es decir, mediante esta herramienta nosotros podemos crear formularios, compilarlos y ejecutarlos, pero si queremos que los otros trabajen sobre este formulario deberemos copiarlo regularmente en una carpeta compartida para todos, de modo que, cuando quieran realizar un cambio, debern copiarlo de dicha carpeta y luego volverlo a subir a la carpeta. Este sistema como podemos observar es bastante engorroso y poco fiable pues es bastante normal que las versiones se pierdan y se machaquen con frecuencia. La principal ventaja de esta herramienta es que es bastante intuitiva y dispone de un modo que nos permite componer el formulario, tal y como lo haramos en Visual Basic o en Visual C, esto es muy de agradecer. Por otro lado decir que pienso que es interesante saber algo de SQL antes de comenzar con MYSQL, ya que, aunque existen algunos cambios insignificantes, sabiendo manejar SQL sabes manejar MYSQL.

Algunas caractersticas:
SQL: Structured query language.

Permite la comunicacin con el sistema gestor de base de datos. En su uso se puede especificar que quiere el usuario. Permite hacer consulta de datos.

Tipos de datos: CHAR:

Tienen una longitud fija. Almacena de 1 a 255. Si se introduce una cadena de menos longitud que la definida se rellenara con blancos a la derecha hasta quedar completada. Si se introduce una cadena de mayor longitud que la fijada nos dar un error.

VARCHAR:

Almacena cadenas de longitud variable. La longitud mxima es de 2000 caracteres. Si se introduce una cadena de menor longitud que la que esta definida, se almacena con esa longitud y no se rellenara con blancos ni con ningn otro carcter a la derecha hasta completar la longitud definida. Si se introduce una cadena de mayor longitud que la fijada, nos dar un error

NUMBER:

Se almacenan tanto enteros como decimales. Number (precisin, escala) Ejemplo: X=number (7,2)
X=155'862 Error ya que solo puede tomar 2 decimales X= 155'86 Bien

Nota: El rango mximo va de 1 a 38.

LONG:

DATE:

No almacena nmeros de gran tamao, sino cadenas de caracteres de hasta 2 GB

Almacena la fecha. Se almacena de la siguiente forma:

Siglo/Ao/Mes/Da/Hora/Minutos/Segundos

RAW:

Almacena cadenas de Bytes (grficos, sonidos)

LONGRAW:

Como el anterior pero con mayor capacidad.

ROWID:

Posicin interna de cada una de las columnas de las tablas. Sentencias de consultas de datos

Select: Select [ALL | Distinct] [expresin_columna1, expresin_columna2, ., | *] From [nombre1, nombre_tabla1, , nombre_tablan] {[Where condicin] [Order By expresin_columna [Desc | Asc]]};

Vamos a explicar como leer la consulta anterior y as seguir la pauta para todas las dems. Cuando ponemos [] significa que debemos la que va dentro debe existir, y si adems ponemos | significa que deberemos elegir un valor de los que ponemos y no ms de uno. En cambio si ponemos {} significa que lo que va dentro de las llaves puede ir o no, es decir es opcional y se pondr segn la consulta.
Nota: En el select el valor por defecto entre ALL y DISTINCT es ALL.

Alias = El nuevo nombre que se le da a una tabla. Se pondr entre comillas Order By = Ordena ascendentemente (Asc) (valor por defecto) o descendentemente (Desc). All = Recupera todas las filas de la tabla aunque estn repetidas. Distinct = Solo recupera las filas que son distintas. Desc Emple; = Nos da un resumen de la tabla y sus columnas. En este caso de la tabla Emple. Not Null= Si aparece en una lista de una columna significa que la columna no puede tener valores nulos. Null= Si est nulo.

Nota: Ntese que cada consulta de SQL que hagamos hemos de terminarla con un punto y coma ";".

Varios ejemplos para verlo mas claro:


SELECT JUGADOR_NO, APELLIDO, POSICION, EQUIPO FROM JUGADORES WHERE EQUIPO_NO = 'VALENCIA' ORDER BY APELLIDO;

Pasamos a describir los pasos necesarios para instalar el sistema gestor de base de datos Oracle Database 10g Express.
Una vez descargado, iniciamos la instalacin y lo primero que nos pedir ser introducir una contrasea para el usuario sys y el system (implementa la misma a los dos usuarios por defecto Una vez instalado el sistema gestor, podemos acceder a nuestra base de datos online a travs de tu men inicio / programas / base de datos Oracle. En este men podemos iniciar los servicios de Oracle, iniciar el sql *plus, Es importante tener arrancados los servicios relacionados con la base de datos Oracle, ya que si no lo estn, la base de datos no funcionar. Pero cabe comentar por otro lado, que tener los servicios funcionando come muchos recursos, por lo que os recomiendo que, cuando no estis utilizando la base de datos Oracle, paris los servicios. La puesta en marcha o parado de los servicios relacionados con la base de datos Oracle se puede hacer desde el panel de control / herramientas administrativas / servicios. Entonces tenis que buscar los servicios que se llaman Oracleservicesxe y OracleXETNSListener y cambiarlos a manual, para as poderlos arrancar y parar cuando vosotros queris. Ahora podemos irnos a la pgina de inicio de nuestra base de datos, la cual accedemos mediante el menu inico>programas->Base de datos Oracle 10g Express Edition->pagina de inicio de la base de datos, para ver la forma visual de hacer todas estas cosas. Cuando abramos la pgina de incio de nuestra base de datos nos pedir un usuario y una contrasea, tendris que poner como usuario system y la contrasea que le hayis dado al instalar el sistema. Una vez dentro, tenemos las opciones de administracin (todo lo referente a la seguridad de sistema), explorador de objetos (todo lo referente a las tablas), sql ( para hacer las cosas por linea de comando) y utilidades diversas para tu base de datos. Este interfaz visual que nos ofrece la pagina de inicio de nuestra base de datos te facilitar mucho el trabajo pero no nos valdr para hacer nada con SQL *Plus ya que solo nos deja realizar operaciones sql bsicas. Por lo tanto, quizs nos interesar utilizar la opcin que tenemos en nuestro escritorio, que se llama "ejecutar linea de comandos SQL". Con ello nos abre una pantalla de DOS con el editor de SQL *Plus.
Nota:Quiero recordar que esto es una versin online de tu base de datos, para instalar una versin completa tendramos que bajarnos el Oracle Database 10g ( que incluye sistema cliente, ejemplos, sistema gateway y sistema clusterware para desarrolladores) y tendramos muchas ms opciones que ya comentaremos ms adelante. La diferencia fundamental es que la version express puede manejar solamente hasta 4 GB de datos y 1 GB de memoria. Esta versin puede embeberse con otras aplicaciones de terceros y se puede distribuir gratuitamente.

Con esto instalado ya podemos comenzar a explicar el SQL *Plus y sus mltiples opciones. Antes de comenzar os comento que necesitaremos una serie de tablas para ir haciendo ejercicios y os aconsejara que os creis algunos usuarios ms con distintos privilegios para ir repasando lo que hemos comentado de la seguridad en Oracle . Esto lo podis hacer de forma visual o por linea de comando desde la pagina inicial de tu base de datos.

Conceptos bsicos para la gestin de seguridad de una base de datos en Oracle.


Un administrador de Oracle puede controlar dos tipos de seguridad;

La seguridad del sistema: Se refiere a mecanismos que controlan el acceso y el uso de la base de datos. Lo que llamamos permisos del sistema. Seguridad de los datos: Son los mecanismos que controlan el acceso y uso de la base de datos a nivel del objectos (tablas, vistas, usuario, etc). Son lo que llamamos los permisos a nivel de objetos.

Seguridad del sistema


En lo referente a la seguridad del sistema es bastante importante saber que el administrador puede crear perfiles para limitar los recursos de la base de datos. Los factores ms importantes que puede limitar son:

Recurso SESSION_PER_USER CPU_PER_SESSION CONNECT_TIME IDLE_TIME

Descripcin El nmero de sesiones concurrentes que un usuario puede tener en una instancia. El tiempo de CPU, en centenas de segundos, que una sesin puede utilizar. El nmero de minutos que una sesin puede permanecer activa. El nmero de minutos que una sesin puede permanecer sin que sea utilizada de manera activa. El nmero de bloques de datos que se pueden leer en una operacin. La cantidad de espacio privado que una sesin puede reservar en la zona de SQL compartido de la SGA. El nmero de total de recursos por sesin, en unidades de servicio. Esto resulta de un clculo ponderado de CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION y PRIVATE_SGA, cuyos pesos se pueden variar con el comando ALTER RESOURCE COST.

LOGICAL_READS_PER_SESSION El nmero de bloques de datos que se pueden leer en una sesin. LOGICAL_READS_PER_CALL PRIVATE_SGA

COMPOSITE_LIMIT

La sintaxis para la creacin de un perfil con varias limitaciones seria: create profile nombre_perfil limit {Entero [K|M] | unlimited | default}; Donde unlimited significa que no hay lmite sobre un recurso particular y default significa que coge el lmite del perfil DEFAULT Para activar los perfiles el administrador debe ejecutar la siguiente orden: alter system set resource_limit=true; Para borrar un perfil tenemos que ejecutar la siguiente orden: drop profile nombre_perfil [cascade]; Es importante saber si este perfil est asignado a algn usuario ya que, si es as, tendremos que poner "cascade", para que lo elimine de esos usuarios tambin. Otro factor importante en la seguridad a nivel de sistema es la gestin de tablespaces. Un tablespace es un espacio de la base de datos que contiene tablas o como su definicin oficial nos dice, es una unidad lgica de almacenamiento de datos compuesta por uno o ms archivos. En Oracle antes de introducir los datos en la base de datos tenemos que crear

un tablespace para que nos deje trabajar. Es importante tener un tablespace para cada tipo de datos es decir, un tablespace para cada aplicacin. La sintaxis de la creacin de un tablespace es la siguiente: create tablespace nombre_tablespace datafile 'nombre_Archivo' [size entero [K|M]] [reuse] [autoextend {off|on clausulas}] [,'nombre_archivo' [size entero [K|M]] [reuse] [autoextend {off|on clausulas}] ] ... [ default storage { initial tamao next tamao minextents tamao maxextents tamao pctincrease valor }] [online|offline]; Donde: datafile: especifica el archivo/s de datos que constara el tablespace size: especifica el tamao del tablesapce reuse: si el archivo ya existe lo reutiliza y sino lo crea. Dafault storage: define el almacenamiento por defecto para todos los objectos que se creen en ese tablespace initial: indica la extensin inicial del tablespace next: indica la extensin siguiente minextents: reserva extensiones adicionales a la extensin inicial y nos permite asignar gran cantidad de espacio cuando se crea un objeto. El valor por defecto es 1 maxextents: es el nmero mximo de extensiones que se le asigna a un objecto pctincrease: factor de crecimiento para la extensin. Valor por defecto 50 offline|online: nos indica si el tablespace esta operativo o no, despus de su creacin

Por defecto Oracle crea los siguientes tablespace: system: donde Oracle almacena toda la informacin para su propia gestin users: espacio de tablas donde se almacena la informacin personal de los usuarios temporary o temp: donde Oracle almacena las tablas temporales tools: espacio para hacer pruebas sobre la base de datos RBS: donde Oracle guarda la informacin al deshacer algn cambio.

Para modificar un tablespace cambiamos el create por el alter mientras que para borrarlo basta con hacer drop tablespace nombre_tablespace;

Continuamos con los conceptos bsicos en la gestin de seguridad en Oracle.


Lo que hace tener una cierta seguridad en nuestros datos es la utilizacin de usuarios. Estos usuarios son nombres que definimos y a los cuales damos una contrasea para acceder a la base de datos. En Oracle cada usuario est asignado a un esquema. Siendo un esquema una coleccin lgica de objetos. Por defecto un usuario tiene acceso a todos los objectos de su esquema y podra acceder a los objetos de otros esquemas como los permisos necesarios. Cuando instanciamos Oracle se crean por defecto dos usuarios importantes:

sys change_on_install: propietario del diccionario de datos de la base de datos system manager: usuario para realizar las tareas de administracin de la base de datos

La sintaxis para la creacin de un usuario es la siguiente:

create user nombre_usuario identified by contraseas [default tablespace nombre_tablespace] [temporary tablespace nombre_tablespace] [quota {entero {K|M} | unlimited} on nombre_tablespace] [profile nombre_perfil]; Para modificar el usuario cambiaremos el create por el alter y para borrarlo tan solo tendremos que poner drop user nombre_usuario cascade; Cada usuario tiene ciertos privilegios, y dentro de esos privilegios podemos hablar de:

privilegios de sistema: son los que nos dan derecho a realizar ciertas operaciones sobre objetos de un tipo especificado. Privilegios sobre objetos: estos privilegios nos permiten realizar cambios en los datos de los objetos de otros usuarios

Cuando creamos un usuario es necesario darle privilegios, de lo contrario no podra realizar ninguna accin.

Roles de usuario
Un rol es un conjunto de permisos que recibe un nombre comn y facilita la tarea de dar permisos a los usuarios. Para crear un rol tan solo tenemos que escribir lo siguiente: create role nombre_role; Oracle ofrece varios roles o funciones ya creadas que ofrecen ciertos privilegios. Esos roles son los siguientes:

connect: Todos los permisos necesarios para iniciar una sesin en Oracle resource: Todos los permisos necesarios para tener recursos para la creacin de objetos dba: posee todos los privilegios del sistema

La sentencia para privilegios sobre los objetos es la siguiente: grant {privilegio_objeto[,privilegio_objeto]...| all [privileges]} [(columna [,columna]...)] on [usuario.]objeto} to {usuario|rol| public [,{usuario|rol|public} ...] [with grant option]; Mientras que la sentencia para crear privilegios de sistema es la siguiente: grant {privilegio|rol} [,privilegio|rol}, ....] to {usuario|rol| public [,{usuario|rol|public} ...] [with admin option]; En ambos caso se utiliza la sentencia revoke para suprimir privilegios, cambiando la sintaxis. Para los privilegios de sistema: revoke {privilegio|rol} [,privilegio|rol}] ... from {usuario|rol|public} [,usuario|rol|public}] ...; para los privilegios de objetos: revoke {privilegio[,privilegio] ... | all [privileges]} on [usuario.]objeto from {usuario|rol|public}[ ,{usuario|rol|public}]...;

Todo lo relacionado con la gestin de usuarios en Oracle.


Es un nombre definido en la base de datos que se puede conectar a ella y acceder a determinados objetos segn ciertas condiciones que establece el administrador. Los objetos del diccionario de datos a los que un usuario puede acceder se encuentran en la vista DICTIONARY, que es propiedad del usuario SYS.
DESC DICTIONARY;

Con la orden:
SELECT TABLENAME FROM DICTIONARY;

Se visualizan los objetos del diccionario de datos a los que se puede acceder. Creacin deusuarios:
CREATE USER NOMBRE_USUARIO IDENTIFIED BY CLAVE_ACCESO [DEFAULT TABLESPACE ESPACIO_TABLA] [TEMPORARY TABLESPACE ESPACIO_TABLA] [QUOTA {ENTERO {K | M} | UNLIMITED } ON ESPACIO_TABLA] [PROFILE PERFIL];

DEFAULT TABLESPACE= Asigna a un usuario el tablespace por defecto para almacenar los objetos que cree. Si no se asigna ninguno, el tablespace por defecto es SYSTEM. TEMPORARY TABLESPACE= Especifica el nombre del tablespace para trabajar temporales. Si no se especifica ninguno, el tablespace por defecto es SYSTEM. QUOTA= Asigna un espacio en megabites o kilobites en el tablespace asignado. Si no se especifica esta clusula, el usuario no tiene cuota asignada y no podr crear objetos en el tablespace. Para tener espacio y acceso ilimitad a un tablespace es:
GRANT UNLIMITED TABLESPACE NOMBRE_TABLESPACE;

PROFILE= Asigna un perfil a un usuario. Modificacin de usuarios:


ALTER USER NOMBRE_USUARIO IDENTIFIED BY CLAVE _ACCESO [DEFAULT TABLESPACE ESPACIO_TABLA] [TEMPORARY TABLESPACE ESPACIO_TABLA] [QUOTA {ENTERO {K | M } | UNLIMITED } ON ESPACIO_TABLA [PROFILE PERFIL];

Borrado de usuarios:
DROP USER USUARIO [CASCADE];

CASCADE= Suprime todos los objetos del usuario antes de borrarlo

Aprendemos a crear y definir claves primarias y sus restricciones.


Rollback: Permite ir hasta el ltimo COMMIT hecho o en su defecto hasta el comienzo de las rdenes con lo que estas no se ejecutan. Commit: Cuando ejecutamos ordenes estas no son creadas en la tabla hasta que ponemos este orden, por tanto los cambios realizados se perdern si al salir del programa no realizamos esta accin. Puede programarse para que lo haga automticamente. Algunas rdenes que lleven COMMIT implcito:

QUIT EXIT CONNECT DISCONNECT CREATE TABLE CREATE VIEW GRANT REVOQUE DROP TABLE DROP VIEW ALTER AUDIT NO AUDIT

Creacin de una tabla: Su primer carcter debe ser alfabtico y el resto pueden ser letras, nmeros y el carcter subrayado.
CREATE TABBLE NOMBRETABLA (COLUMNA1 TIPO_DATO {NOT NULL}, COLUMNA2 TIPO_DATO {NOT NULL}, ) TABLESPACE ESPACIO_DE_TABLA;

Caractersticas:

Las definiciones individuales de columnas se separan mediante comas. No se pone coma despus de la ltima definicin de columna. Las maysculas y minsculas son indiferentes.

Los usuarios pueden consultar las tablas creadas por medio de la vista USER_TABLES. Integridad de datos: La integridad hace referencia al hecho de que los datos de la base de datos han de ajustarse a restricciones antes de almacenarse en ella. Una restriccin de integridad ser: Una regla que restringe el rango de valores para una o ms columnas en la tabla. Restricciones en create table: Usamos la clusula CONSTRAINT, que puede restringir una sola columna o un grupo de columnas de una misma tabla. Hay dos modos de especificar restricciones:

Como parte de la definicin de columnas. Al final, una vez especificados todas las columnas.

Formato:
CREATE TABLE NOMBRE_TABLA (COLUMNA1 TIPO_DE_DATO {CONSTRAINT NOMBRE_RESTRICCION} {NOT NULL} {UNIQUE} {PRIMARY KEY} {DEFAULT VALOR} {REFERENCES NOMBRETABLA [(COLUMNA, [,COLUMNA]) {ON DELETE CASCADE}} {CHECK CONDICION}, COLUMNA2... ) {TABLESPACE ESPACIO_DE_TABLA} ; CREATE TABLE NOMBRE_TABLA (COLUMNA1 TIPO_DATO , COLUMNA2 TIPO_DATO, COLUMNA3 TIPO_DATO, ... {CONSTRAINT NOMBRERESTRICCION} [{UNIQUE} | {PRIMARY KEY} (COLUMNA [, COLUMNA])], {CONSTRAINT NOMBRERESTRICCION} {FOREIGN KEY (COLUMNA [, COLUMNA]) REFERENCES NOMBRETABLA {(COLUMNA [, COLUMNA]) {ON DELETE CASCADE}}, {CONSTRINT NOMBRERESTRICCIONI} {CHECK (CONDICION)} )[TABLESPACE ESPACIO_DE_TABLA];

Vemos claves primarias y claves externas (foreing keys) y aprendemos a aplicar restricciones a los distintos campos de las tablas.
Clave primaria: Primary key Es una columna o un conjunto de columnas que identifican unvocamente a cada fila. Debe ser nica, no nula y obligatoria. Como mximo, podemos definir una clave primaria por tabla. Esta clave se puede referenciar por una columna o columnas. Cuando se crea una clave primaria, automticamente se crea un ndice que facilita el acceso a la tabla. Formato de restriccin de columna:
CREATE TABLE NOMBRE_TABLA (COL1 TIPO_DATO [CONSTRAINT NOMBRE_RESTRICCION] PRIMARY KEY COL2 TIPO_DATO )[TABLESPACE ESPACIO_DE_TABLA];

Formato de restriccin de tabla:


CREATE TABLE NOMBER_TABLA (COL1 TIPO_DATO, COL2 TIPO_DATO, [CONSTRAINT NOMBRERESTRICCION] PRIMARY KEY (COLUMNA [,COLUMNA]), )[TABLESPACE ESPACIO_DE_TABLA];

Claves ajenas: Foreign Key: Esta formada por una o varias columnas que estn asociadas a una clave primaria de otra o de la misma tabla. Se pueden definir tantas claves ajenas como se precise, y pueden estar o no en la misma tabla que la clave primaria. El valor de la columna o columnas que son claves ajenas debe ser: NULL o igual a un valor de la clave referenciada (regla de integridad referencial). Formato de restriccin de columna:
CREATE TABLE NOMBRE_TABLA (COLUMNA1 TIPO_DATO [CONSTRAINT NOMBRERESTRICCION] REFERENCES NOMBRETABLA [(COLUMNA)] [ON DELETE CASCADE] )[TABLESPACE ESPECIO_DE_TABLA];

Formato de restriccin de tabla:


CREATE TABLE NOMBRE_TABLA (COLUMNA1 TIPO_DATO, COLUMNA2 TIPO_DATO, [CONTRAINT NOMBRERESTRICCION] FOREIGN KEY (COLUMNA [,COLUMNA]) REFERENCES NOMBRETABLA [(COLUMNA [, COLUMNA])] [ON DELETE CASCADE], )[TABLESPACE ESPACIO_DE_TABLA];

Notas:

En la clusula REFERENCES indicamos la tabla a la cual remite la clave ajena. Hay que crear primero una tabla y despus aquella que le hace referencia. Hay que borrar primero la tabla que hace referencia a otra tabla y despus la tabla que no hace referencia. Borrado en cascada (ON DELETE CASCADE): Si borramos una fila de una tabla maestra, todas las filas de la tabla detalle cuya clave ajena sea referenciada se borraran automticamente. La restriccin se declara en la tabla detalle. El mensaje "n filas borradas" solo indica las filas borradas de la tabla maestra.

NOT NULL: Significa que la columna no puede tener valores nulos. DEFAULT: Le proporcionamos a una columna un valor por defecto cuando el valor de la columna no se especifica en la clusula INSERT. En la especificacin DEFAULT es posible incluir varias expresiones: constantes, funciones SQL y variables UID y SYSDATE. Verificacin de restricciones: CHECK: Acta como una clusula where. Puede hacer referencia a una o ms columnas, pero no a valores de otras filas. En una clusula CHECK no se pueden incluir subconsultas ni las pseudoconsultas SYSDATE, UID y USER.
Nota: La restriccin NOT NULL es similar a CHECK (NOMBRE_COLUMNA IS NOT NULL)

UNIQUE: Evita valores repetidos en la misma columna. Puede contener una o varias columnas. Es similar a la restriccin PRIMARY KEY, salvo que son posibles varias columnas UNIQUE definidas en una tabla. Admite valores NULL. Al igual que en PRIMARY KEY, cuando se define una restriccin UNIQUE se crea un ndice automticamente. Vistas del diccionario de datos para las restricciones: Contienen informacin general las siguientes: USER_CONSTRAINTS: Definiciones de restricciones de tablas propiedad del usuario. ALL_CONSTRAINTS: Definiciones de restricciones sobre tablas a las que puede acceder el usuario. DBA_CONSTRAINTS: Todas las definiciones de restricciones sobre todas las tablas. Creacin de una tabla con datos recuperados en una consulta: CREATE TABLE: permite crear una tabla a partir de la consulta de otra tabla ya existente. La nueva tabla contendr los datos obtenidos en la consulta. Se lleva a cabo esta accin con la clusula AS colocada al final de la orden CREATE TABLE.
CREATE TABLE NOMBRETABLA (COLUMNA [,COLUMNA] )[TABLESPACE ESPACIO_DE_TABLA] AS CONSULTA;

No es necesario especificar tipos ni tamao de las consultas, ya que vienen determinadas por los tipos y los tamaos de las recuperadas en la consulta. La consulta puede tener una subconsulta, una combinacin de tablas o cualquier sentencia select valida. Las restricciones CON NOMBRE no se crean en una tabla desde la otra, solo se crean aquellas restricciones que carecen de nombre.

Vemos sentencias en SQL para la supresion y modificacin tanto de tablas como de restricciones.
Supresin de tablas: DROP TABLE: suprime una tabla de la base de datos. Cada usuario puede borrar sus propias tablas, pero solo el administrador o algn usuario con el privilegio "DROP ANY TABLE" puede borrar las tablas de otro usuario. Al suprimir una tabla tambin se suprimen los ndices y los privilegios asociados a ella. Las vistas y los sinnimos creados a partir de esta tabla dejan de funcionar pero siguen existiendo en la base de datos por tanto deberamos eliminarlos. Ejemplo:
DROP TABLE [USUARIO].NOMBRETABLA [CASCADE CONSTRAINTS];

TRUNCATE: permite suprimir todas las filas de una tabla y liberar el espacio ocupado para otros usos sin que reaparezca la definicin de la tabla de la base de datos. Una orden TRUNCATE no se puede anular, como tampoco activa disparadores DELETE.
TRUNCATE TABLE [USUARIO.]NOMBRETABLA [{DROP | REUSE} STORAGE];

Modificacin de tablas: Se modifican las tablas de dos formas: Cambiando la definicin de una columna (MODIFY) aadiendo una columna a una tabla existente (ADD): Formato:
ALTER TABLE NOMBRETABLA {[ADD (COLUMNA [,COLUMNA])] [MODIFY (COLUMNA [,COLUMNA])] [ADD CONSTRAINT RESTRICCION] [DROP CONSTRAINT RESTRICCION]};

ADD= Aade una columna o mas al final de una tabla. MODIFY= Modifica una o mas columnas existentes en la tabla. ADD CONSTRAINT= Aade una restriccin a la definicin de la tabla. DROP CONSTRAINT= Elimina una restriccin de la tabla. A la hora de aadir una columna a una tabla hay que tener en cuenta:

Si la columna no esta definida como NOT NULL se le puede aadir en cualquier momento. Si la columna esta definida como NOT NULL se pueden seguir estos pasos: 1. Se aade una columna sin especificar NOT NULL. 2. Se da valor a la columna para cada una de las filas. 3. Se modifica la columna NOT NULL.

Al modificar una columna de duna tabla se han de tener en cuenta:

Se puede aumentar la longitud de una columna en cualquier momento. Es posible aumentar o disminuir el numero 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 opcin MODIFY NOT NULL solo ser posible cuando la tabla no contenga ninguna fila con valor nulo en la columna que se modifica.

Adicin de restricciones: Con la orden ALTER TABLE se aaden restricciones a una tabla. Formato:
ALTER TABLE NOMBRETABLA ADD CONSTRAINT NOMBRECONSTRAINT

Borrado de restricciones: La orden ALTER TABLE con la clusula DROP CONSTRAINT; con la que se borran las restricciones con nombre y las asignadas por el sistema. Formato:
ALTER TABLE NOMBRETABLA DROP CONSTRAINT NOMBRE_CONSTRAINT, NOMBRE_RESTRICCION:

Das könnte Ihnen auch gefallen