Vous êtes sur la page 1sur 4

LA CLUSULA CONSTRAINT

Se utiliza la clusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar
ndices. Existen dos sintaxis para esta clusula dependiendo si desea Crear Eliminar un ndice de un nico
campo o si se trata de un campo multindice.

Para los ndices de campos nicos:
CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa
[(campo externo1, campo externo2)]}

Para los ndices de campos mltiples:
CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [,...]]) |
UNIQUE (nico1[, nico2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [,...]]) REFERENCES tabla externa
[(campo externo1 ,campo externo2 [,...])]}

En donde:
nombre Es el nombre del ndice que se va a crear.
primarioN Es el nombre del campo o de los campos que forman el ndice primario.
nicoN Es el nombre del campo o de los campos que forman el ndice de clave nica.
refN
Es el nombre del campo o de los campos que forman el ndice externo (hacen referencia a
campos de otra tabla).
tabla externa Es el nombre de la tabla que contiene el campo o los campos referenciados en refN
campos externos
Es el nombre del campo o de los campos de la tabla externa especificados por ref1, ref2,...
, refN

Si se desea crear un ndice para un campo cuando se esta utilizando las instrucciones ALTER TABLE o
CREATE TABLE la clusula CONSTRAINT debe aparecer inmediatamente despus de la especificacin del
campo indexado.

Si se desea crear un ndice con mltiples campos cuando se est utilizando las instrucciones ALTER TABLE o
CREATE TABLE la clusula CONSTRAINT debe aparecer fuera de la clusula de creacin de tabla.

Indice Descripcin
UNIQUE
Genera un ndice de clave nica. Lo que implica que los registros de la tabla no pueden
contener el mismo valor en los campos indexados.
PRIMARY
KEY
Genera un ndice primario el campo o los campos especificados. Todos los campos de la clave
principal deben ser nicos y no nulos, cada tabla slo puede contener una nica clave
principal.
FOREIGN
KEY
Genera un ndice externo (toma como valor del ndice campos contenidos en otras tablas). Si la
clave principal de la tabla externa consta de ms de un campo, se debe utilizar una definicin
de ndice de mltiples campos, listando todos los campos de referencia, el nombre de la tabla
externa, y los nombres de los campos referenciados en la tabla externa en el mismo orden que
los campos de referencia listados. Si los campos referenciados son la clave principal de la tabla
externa, no tiene que especificar los campos referenciados, predeterminado por valor, el motor
Jet se comporta como si la clave principal de la tabla externa estuviera formada por los campos
referenciados.





MODIFICAR EL DISEO DE UNA TABLA

Modifica el diseo de una tabla ya existente, se pueden modificar los campos o los ndices existentes. Su
sintaxis es:

ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamao)]
[CONSTRAINT ndice]
CONSTRAINT ndice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del ndice}}

En donde:
tabla Es el nombre de la tabla que se desea modificar.
campo Es el nombre del campo que se va a aadir o eliminar.
tipo Es el tipo de campo que se va a aadir.
tamao Es el tamao del campo que se va a aadir (slo para campos de texto).
ndice
Es el nombre del ndice del campo (cuando se crean campos) o el nombre del ndice de la
tabla que se desea eliminar.
ndice multicampo
Es el nombre del ndice del campo multicampo (cuando se crean campos) o el nombre del
ndice de la tabla que se desea eliminar.
Operacin Descripcin
ADD
COLUMN
Se utiliza para aadir un nuevo campo a la tabla, indicando el nombre, el tipo de campo y
opcionalmente el tamao (para campos de tipo texto).
ADD Se utiliza para agregar un ndice de multicampos o de un nico campo.
DROP
COLUMN
Se utiliza para borrar un campo. Se especifica nicamente el nombre del campo.
DROP
Se utiliza para eliminar un ndice. Se especifica nicamente el nombre del ndice a continuacin
de la palabra reservada CONSTRAINT.

ALTER TABLE Empleados
ADD COLUMN Salario CURRENCY
(Agrega un campo Salario de tipo Moneda a la tabla Empleados.)

ALTER TABLE Empleados
DROP COLUMN Salario
(Elimina el campo Salario de la tabla Empleados.)

ALTER TABLE Pedidos
ADD CONSTRAINT RelacionPedidos FOREIGN KEY (IdEmpleado) REFERENCES Empleados
(IdEmpleado)
(Agrega un ndice externo a la tabla Pedidos. El ndice externo se basa en el campo IdEmpleado y se
refiere al campo IdEmpleado de la tabla Empleados. En este ejemplo no es necesario indicar el campo
junto al nombre de la tabla en la clusula REFERENCES, pues ID_Empleado es la clave principal de la
tabla Empleados.)

ALTER TABLE Pedidos DROP CONSTRAINT RelacionPedidos
(Elimina el ndice de la tabla Pedidos.)





INSERCIN DE TUPLAS (Registros)

Para insertar tuplas en una relacin se usa la instruccin INSERT de SQL:

INSERT INTO tabla VALUES (valor1, valor2, . . ., valorN)

Por ejemplo, para insertar una nueva tupla en la relacin empleado, basta con escribir:

INSERT INTO empleado VALUES (12325432, 'Juen Jose', 'Gil', 125000.00 );

Para la insercin de fechas, debe especificarse el formato en que se est introduciendo la fecha, usando para
ello:

TO_DATE ("string de fecha", "formato")

por ejemplo, si se quisiera ingresar en la relacin empleado anterior, un atributo con la fecha de nacimiento,
debera agregarse la misma, de la siguiente manera:

INSERT INTO empleado VALUES (12325432, 'Juen Jose', 'Gil', 125000.00,
TO_DATE ('15-02-72', 'DD-MM-YY') );

Si se quisiera adems, agregar la hora de nacimiento, debera usarse:

INSERT INTO empleado VALUES (12325432, 'Juen Jose', 'Gil', 125000.00,
TO_DATE ('15-02-72 15:23', 'DD-MM-YY HH24:MI') );

A continuacin se presenta una tabla con algunos de los formatos mas usados:

Formato Descripcin
HH, HH12 Hora en el formato tradicional 1-12
HH24 Hora en el formato de 24 horas (0-23)
MI Minutos (0-59)
DD Dia del mes (1-31 con restricciones)
D Dia de la semana (0=domingo)
MM Mes en formato numerico (1-12)
MON Nombre del mes abreviado a tres caracteres, en ingls (JAN=Enero)
MONTH Nombre del mes en ingls. En caso de ser un nombre corto, se rellena con espacios en
blanco hasta nueve caracteres (MARCH=marzo, JANUARY=enero, . . .)
YY Ao en formato de dos dgitos (se asume 19xx)
YYYY Ao en formato de 4 dgitos.

ACTUALIZAR LA INFORMACIN EN LA BASES DE DATOS

Normalmente, las informaciones presentes en una base de datos no son estticas, sino que evolucionan en el
tiempo. Existe, por tanto, la necesidad no slo de aadir nuevos datos, sino de modificar los que estn ya
incluidos en las tablas de la base de datos. Las instrucciones SQL que se usan para este fin son UPDATE y
DELETE. La primera modifica los valores presentes en una o ms columnas de una o ms lneas de una tabla.
La segunda elimina una o ms lneas de una tabla.

La sintaxis de UPDATE es la siguiente:

UPDATE nombre_tabla
SET lista_asignaciones
[ WHERE expresin_condicional ]

Las asignaciones se especifican del modo:

nombre_columna = expresin_escalar

La instruccin UPDATE actualiza las columnas de la tabla que se han especificado en la clusula SET, utilizando
los valores que son calculados por las correspondientes expresiones escalares. Si se expresa tambin la
clusula WHERE, se actualizan slo las lneas que satisfacen la expresin condicional. Vase que la expresin
escalar usada para actualizar una columna puede ser tambin el resultado de una query escalar, es decir una
query que devuelve una sola lnea y una sola columna.

Veamos un ejemplo:

UPDATE Person
SET given_names = 'Stefano'
WHERE surname = 'Spaccapietra'

La instruccin anterior cambia el valor de la columna given_name de la tabla Person en las lneas (en nuestro
caso es una sola) en que la columna surname tiene valor 'Spaccapietra'.

La sintaxis de DELETE es:

DELETE FROM nombre_tabla
[ WHERE expresin_condicional ]

La instruccin delete elimina de una tabla todas las lneas que satisfacen la expresin condicional de la clusula
WHERE. Si WHERE no se especifica, se cancelan todas las lneas de la tabla.

Si en la definicin de la tabla se han especificado las clusulas ON UPDATE u ON DELETE, en el momento en
que se ejecutan estas operaciones tambin se ejecutan las que haban estado previstas en las columnas
referenciadas (CASCADE, SET DEFAULT o SET NULL).



ELIMINANDO TABLAS

Para eliminar una tabla determinada, se usa la instruccin DROP TABLE, de la siguiente manera:

DROP TABLE nombretabla;

Con lo cual se elimina la tabla nombretabla del sistema.
Un caso especial se presenta si la relacin a ser eliminada est referenciada por claves forneas en otra(s)
relacin(es). En este caso, se debe hacer la llamada de la siguiente manera:

DROP TABLE nombretabla CASCADE CONSTRAINTS;

De esta manera se eliminarn todas las tuplas en otras relaciones que referencien a la clave primaria de la
relacin a ser eliminada. Si no se incluye el parmetro CASCADE CONSTRAINTS y existe alguna referencia a
una tupla que se eliminar, ORACLE retornar un mensaje de error y no eliminar la relacin.


CREACION DE SCRIPTS EN ORACLE

La creacin de relaciones e insercin de valores en las mismas suele ser un proceso bastante tedioso,
especialmente cuando se transcriben errores en las instrucciones. Para simplificar esto, es posible crear Scripts
que permiten crear, modificar y eliminar relaciones, as como insertar, eliminar y buscar tuplas.

Un script no es mas que un archivo de texto, con instrucciones de SQL separadas por punto y coma. Dichos
archivos deben tener permiso de lectura para el usuario (100), y para ejecutar su contenido se debe usar la
instruccin START, de la siguiente manera:

SQL> START scriptname
SQL> @ scriptname
SQL> ST scriptname

Vous aimerez peut-être aussi