Curso de SQL

Una base de datos en un sistema relacional est� compuesta por un conjunto de tablas, que corresponden a las relaciones del modelo relacional. En la terminolog�a usada en SQL no se alude a las relaciones, del mismo modo que no se usa el t�rmino atributo, pero s� la palabra columna, y no se habla de tupla, sino de l�nea.

.�Creaci�n de Tablas Nuevas

CREATE TABLE tabla (campo1 tipo (tama�o) �ndice1 , 
campo2 tipo (tama�o) �ndice2 , ..., 
�ndice multicampo , ... ) 

En donde:

Parte Descripci�n
tabla Es el nombre de la tabla que se va a crear.
campo1
campo2
Es el nombre del campo o de los campos que se van a crear en la nueva tabla. La nueva tabla debe contener, al menos, un campo.
tipo Es el tipo de datos de campo en la nueva tabla. (Ver Tipos de Datos)
tama�o Es el tama�o del campo s�lo se aplica para campos de tipo texto.
�ndice1
�ndice2
Es una cl�usula CONSTRAINT que define el tipo de indice a crear. Esta cl�usula en opcional.
�ndice multicampos Es una cl�usula CONSTRAINT que define el tipo de indice multicampos a crear. Un �ndice multi campo es aquel que est� indexado por el contenido de varios campos. Esta cl�usula en opcional.
CREATE TABLE Empleados (Nombre TEXT (25) , Apellidos TEXT (50)); 
Crea una nueva tabla llamada Empleados con dos campos, uno llamado Nombre de tipo texto y longutid 25 y otro llamado apellidos con longitud 50.
CREATE TABLE Empleados (Nombre TEXT (10), Apellidos TEXT,
Fecha_Nacimiento DATETIME) CONSTRAINT IndiceGeneral UNIQUE 
([Nombre], [Apellidos], [Fecha_Nacimiento]); 
Crea una nueva tabla llamada Empleados con un campo Nombre de tipo texto y longitud 10, otro con llamado Apellidos de tipo texto y longitud predeterminada (50) y uno m�s llamado Fecha_Nacimiento de tipo Fecha/Hora. Tambi�n crea un �ndice �nico (no permite valores repetidos) formado por los tres campos.
CREATE TABLE Empleados (ID INTEGER CONSTRAINT IndicePrimario PRIMARY,
Nombre TEXT, Apellidos TEXT, Fecha_Nacimiento DATETIME);
Crea una tabla llamada Empleados con un campo Texto de longitud predeterminada (50) llamado Nombre y otro igual llamado Apellidos, crea otro campo llamado Fecha_Nacimiento de tipo Fecha/Hora y el campo ID de tipo entero el que establece como clave principal.

.�La cl�usula CONSTRAINT

Se utiliza la cl�usula CONSTRAINT en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar �ndices. Existen dos sintaxis para esta cl�usula dependiendo si desea Crear � Eliminar un �ndice de un �nico campo o si se trata de un campo multi�ndice. Si se utiliza el motor de datos de Microsoft, s�lo podr� utilizar esta cl�usula con las bases de datos propias de dicho motor.

Para los �ndices de campos �nicos:

CONSTRAINT nombre {PRIMARY KEY | UNIQUE | REFERENCES tabla externa
[(campo externo1, campo externo2)]} 

Para los �ndices de campos m�ltiples:

CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [, ...]]) | 
UNIQUE (�nico1[, �nico2 [, ...]]) | 
FOREIGN KEY (ref1[, ref2 [, ...]]) REFERENCES tabla externa [(campo externo1 
[,campo externo2 [, ...]])]}
Parte Descripci�n
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 cl�usula CONSTRAINT debe aparecer inmediatamente despu�s de la especificaci�n del campo indexado.

Si se desea crear un �ndice con m�ltiples campos cuando se est� utilizando las instrucciones ALTER TABLE o CREATE TABLE la cl�usula CONSTRAINT debe aparecer fuera de la cl�usula de creaci�n de tabla.

Tipo de Indice Descripci�n
UNIQUE Genera un �ndece 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 s�lo 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 m�s de un campo, se debe utilizar una definici�n de �ndice de m�ltiples 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 fueran los campos referenciados.

.�Creaci�n de Indices

Si se utiliza el motor de datos Jet de Microsoft s�lo se pueden crear �ndices en bases de datos del mismo motor. La sintaxis para crear un �ndice en una tabla ya definida en la siguiente:

CREATE [ UNIQUE ] INDEX �ndice 
ON tabla (campo [ASC|DESC][, campo [ASC|DESC], ...]) 
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]

En donde:

Parte Descripci�n
�ndice Es el nombre del �ndice a crear.
tabla Es el nombre de una tabla existentes en la que se crear� el �ndice.
campo Es el nombre del campo o lista de campos que consituyen el �ndice.
ASC|DESC Indica el orden de los valores de lso campos ASC indica un orden ascendente (valor predeterminado) y DESC un orden descendente.
UNIQUE Indica que el indice no puede contener valores duplicados.
DISALLOW NULL Prohibe valores nulos en el �ndice
IGNORE NULL Excluye del �ndice los valores nulos incluidos en los campos que lo componen.
PRIMARY Asigna al �ndice la categor�a de clave principal, en cada tabla s�lo puede existir un �nico indice que sea "Clave Principal". Si un �ndice es clave principal implica que que no puede contener valores nulos ni duplicados.

En el caso de ACCESS, se puede utilizar CREATE INDEX para crear un pseudo �ndice sobre una tabla adjunta en una fuente de datos ODBC tal como SQL Server que no tenga todav�a un �ndice. No necesita permiso o tener acceso a un servidor remoto para crear un pseudo �ndice, adem�s la base de datos remota no es consciente y no es afectada por el pseudo �ndice. Se utiliza la misma sintaxis para las tabla adjunta que para las originales. Esto es especialmente �til para crear un �ndice en una tabla que ser�a de s�lo lectura debido a la falta de un �ndice.

CREATE INDEX MiIndice ON Empleados (Prefijo, Telefono);
Crea un �ndice llamado MiIndice en la tabla empleados con los campos Prefijo y Telefono.
CREATE UNIQUE INDEX MiIndice ON Empleados (ID) WITH DISALLOW NULL;
Crea un �ndice en la tabla Empleados utilizando el campo ID, obligando que el campo ID no contenga valores nulos ni repetidos.

.�Modificar el Dise�o de una Tabla

ALTER TABLE modifica el dise�o de una tabla ya existente, se puden modificar los campos o los �ndices existentes. Su sintaxis es:

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

En donde:

Parte Descripci�n
tabla Es el nombre de la tabla que se desea modificar.
campo Es el nombre del campo que se va a a�adir o eliminar.
tipo Es el tipo de campo que se va a a�adir.
tama�o El el tama�o del campo que se va a a�adir (s�lo 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.
Operaci�n Descripci�n
ADD COLUMN Se utiliza para a�adir un nuevo campo a la tabla, indicando el nombre, el tipo de campo y opcionalmente el tama�o (para campos de tipo texto).
ADD Se utliza para agregar un �ndice de multicampos o de un �nico campo.
DROP COLUMN Se utliza 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 continuaci�n 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
(ID_Empleado) REFERENCES Empleados (ID_Empleado); 
Agrega un indice externo a la tabla Pedidos. El �ndice externo se basa en el campo ID_Empleado y se refiere al campo ID_Empleado de la tabla Empleados. En este ejemplo no es necesario indicar el campo junto al nombre de la tabla en la cl�usula REFERENCES, pues ID_Empleado es la clave principal de la tabla Empleados.
ALTER TABLE Pedidos DROP CONSTRAINT RelacionPedidos; 
Elimina el �ndide de la tabla Pedidos.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP