Definición de tablas en SQL
Cualquier tabla de una Base de Datos Relacional tiene las siguientes partes:
1. Campos
2. Restricciones
Sintáxis
CREATE TABLE nombre_tabla
(
{ Declaración_campo } …
{ Declaración_restricción }…
)
Una coma indica el fin de una declaración de campo o restricción.
Donde
Declaración_campo: es la definición de un campo.
Sintaxis
Nombre_campo tipo_dato configuración
Donde
– Nombre_campo
Es el identificador del campo.
– Tipo_dato
Es el nombre de un tipo de dato proporcionado por el Administrador de la Base de Datos.
– Configuración
Es un conjunto de restricciones para un campo:
• NULL: Permite agregar un registro sin proporcionar el valor que
corresponde al campo.
• NOT NULL: Obliga a proporcionar el valor del campo al momento de agregar un
registro.
• DEFAULT: Especifica un valor predeterminado cuando no se conoce el valor
del campo al momento de agregar un registro.
Sintaxis
DEFAULT valor_predenterminado
• IDENTITY: Indica que el campo es llave subrrogada. Solo puede ser indicado
para un campo en una tabla.
Sintaxis
IDENTITY( numbase, numincremento )
Numbase: Número a partir del cual se generan los valores secuenciales.
Numincremento: Rango del incremento secuencial.
• PRIMARY KEY: El campo es el único que forma parte de la llave primaria.
• UNIQUE: El campo forma una llave candidata por si solo.
• REFERENCES: El campo hace referencia a otro campo en la tabla indicada.
Sintaxis
REFERENCES nombre_tabla ( nombre_campo )
Algunos valores de configuración se contraponen:
• Un campo definido como llave primaria no puede permitir nulos: En caso
contrario podrían existir dos registros o más con dicho campo nulo y no se
podría distinguir uno de otro.
• Un campo definido como llave primaria no tiene definido un valor
predeterminado: En caso contrario podrían existir dos registros o más con dicho
valor y no se podría distinguir uno de otro.
• Las llaves candidatas, puesto que tienen la misma característica de una llave
primaria están sujetas a las dos consideraciones anteriores.
Declaración_restricción: Define una restricción que puede involucrar a más de un
campo.
• PRIMARY KEY
Define la llave primaria que puede o no constar de más de un campo.
Sintaxis
PRIMARY KEY ( CAMPO1, CAMPO2, … , CAMPOn )
• UNIQUE
Define una llave candidata que puede o no constar de más de un campo.
Sintaxis
UNIQUE ( CAMPO1, CAMPO2, … , CAMPOn )
• FOREIGN KEY
Define una llave foránea que puede o no constar de más de un campo.
Sintaxis
FOREIGN KEY ( CAMPOa1, … , CAMPOan ) REFERENCES TABLAx ( CAMPOb1, … ,
CAMPObn )
Define una llave foránea que solo puede tener un campo
nombre_campo1 tipo_dato1 REFERENCES TABLAx ( CAMPOb1, … , CAMPObn )
Los campos con subindice ‘a’ pertenecen a la tabla definida que hacen referencia a los campos con subindice ‘b’ que pertenecen a la tabla TABLAx.
Eliminar una tabla
El comando DROP TABLE borra una tabla si no existen llaves foráneas en otras tablas en la base de datos que hagan referencia a ella.
Sintaxis
DROP TABLE nombre_tabla
Ejemplo 1
La estructura de la base de datos del estacionamiento es:
Tcajones
Campo |
Tipo | Varios |
Numcajon | Int | PK |
Tamanio | Char(1) | Nn |
Piso | Int | Nn |
Status | Bit | Nn,d(1) |
Tentradas
Campo |
Tipo | Varios |
Ticket | Int | PK, I(1,1) |
Fhentrada | Smalldatetime | Nn, d(getdate()) |
Fhsalida | Smalldatetime | N |
Cajon | Int | FK |
Placas | Varchar(8) | Nn |
Total | Money | N, d(0) |
Definir cada tabla de la base de datos relacional
CREATE TABLE TCAJONES ( NUMCAJON INT NOT NULL PRIMARY KEY, TAMANIO CHAR(1) NOT NTULL, PISO INT NOT NULL, STATUS BIT NOT NULL DEFAULT 1 ) CREATE TABLE TENTRADAS ( TICKET INT NOT NULL IDENTITY(1,1) PRIMARY KEY, FHENTRADA SMALLDATETIME NOT NULL DEFAULT GETDATE(), FHSALIDA SMALLDATETIME NULL, CAJON INT NOT NULL REFERENCES TCAJONES( NUMCAJON ), PLACAS VARCHAR(8) NOT NULL, TOTAL MONEY NULL DEFAULT 0 )
El último elemento definido en una tabla no lleva una coma ( , ) al final