Definiciones De Sql
Enviado por nayum1 • 9 de Septiembre de 2014 • 1.293 Palabras (6 Páginas) • 215 Visitas
8.2.Restricciones (CONSTRAINT)
Para insertar valores en una tabla se puede restringir o delimitar los valores posibles para un determinado campo o para varios. Para ello se utiliza la cláusula CONSTRAINT. Para establecer un CONSTRAINT a la hora de crear una tabla se puede hacer de dos formas:
•Nivel de columna
•Nivel de tabla
Las CONSTRAINT que hay son:
•PRIMARY KEY: una PRIMARY KEY es uno o varios identificadores para esa tabla. Solo se puede establecer uno por tabla, pero pueden serlo una o un conjunto de columnas. Debe tener cuidado al introducir valores para uno o varios campos que son PRIMARY KEY, ya que no admiten valores nulos ni valores que ya existan en la tabla para esa columna.Si se define una restricción PRIMARY KEY para más de una columna, puede haber valores duplicados dentro de la misma columna, pero cada combinación de valores de todas las columnas de la definición de la restricción PRIMARY KEY debe ser única.
•NULL/NOT NULL: se puede dar o no valores nulos para esa columna
•DEFAULT: si no se rellena con un valor ese campo, le da un valor por defecto.
•UNIQUE: se utiliza para garantizar que no se escriben valores duplicados en columnas específicas que no forman parte de una clave principal. Tanto la restricción UNIQUE como la restricción PRIMARY KEY exigen la unicidad; sin embargo, debe utilizar la restricción UNIQUE y no PRIMARY KEY si desea exigir la unicidad de una columna o una combinación de columnas que no forman la clave principal. En una tabla se pueden definir varias restricciones UNIQUE. Además, a diferencia de las restricciones PRIMARY KEY, las restricciones UNIQUE admiten valores NULL. Sin embargo, de la misma forma que cualquier valor incluido en una restricción UNIQUE, sólo se admite un valor NULL por columna.
•CHECK: solo permite introducir valores que cumplan una determinada condicion.
•FOREIGN KEY: una clave externa (FK) es una columna o combinación de columnas que se utiliza para establecer y exigir un vínculo entre los datos de dos tablas. En una referencia de clave externa, se crea un vínculo entre dos tablas cuando las columnas de una de ellas hacen referencia a las columnas de la otra que contienen el valor de clave principal. Esta columna se convierte en una clave externa para la segunda tabla. No es necesario que una restricción FOREIGN KEY esté vinculada únicamente a una restricción PRIMARY KEY de otra tabla; también puede definirse para que haga referencia a las columnas de una restricción UNIQUE de otra tabla. Una restricción FOREIGN KEY puede contener valores NULL, pero si alguna columna de una restricción FOREIGN KEY compuesta contiene valores NULL, se omitirá la comprobación de los valores que componen la restricción FOREIGN KEY.
•AUTOINCREMENT: el gesto de bases de datos incrementa en uno por cada registro
•COMMENT: se puede poner comentarios para esa columna
8.2.1.Restricciones Nivel de columna
Son restricciones que se ponen al crear la columna. Se hace de la forma siguiente:
•PRIMARY KEY: dni INT(9) PRIMARY KEY
•NULL/NOT NULL: direccion VARCHAR(42) NOT NULL
•DEFAULT: telefono INT(9) DEFAULT NULL
•UNIQUE: apellidos VARCHAR(42) UNIQUE
•CHECK: año INT(4) CHECK (año between 1900 and 2008)
•FOREIGN KEY: En las claves ajenas se debe indicar la tabla y la columna de la cual se obtendrán valores. Ej: countrycode CHAR(3) REFERENCES country(code)
•AUTOINCREMENT: id INT(2) AUTOINCREMENT
•COMMENT: descripcion VARCHAR(20) COMMENT "Esto es un comentario"
A continuación un ejemplo de creacion de tabla con restricciones a nivel de columna:
Create TABLE socios (
socio_noINT(4) PRIMARY KEY,
apellidos VARCHAR(14) UNIQUE,
telefono CHAR(9) NOT NULL,
fecha_alta DATE DEFAULT '2000-01-01',
direccion VARCHAR(20),
codigo_postal INT(5) CHECK (codigo_postal BETWEEN 28000 AND 28999)
);
8.2.2.Restricciones Nivel de tabla
Son restricciones que se ponen despues de declarar los campos. Se hace de la forma siguiente:
•PRIMARY KEY: Se pone el nombre de la restricción y despues se ponen uno o varios campos como PK. Se recomienda nombrar la restriccion como pkNombreTabla. Sintaxis:
CONSTRAINT pkNombreTabla PRIMARY KEY (campo1,[campo2,...])
•UNIQUE: Se pone el nombre de la restricción y despues se ponen uno o varios campos como UQ. Se recomienda nombrar la restriccion como uqNombreTabla_NombreCampos. Sintaxis:
CONSTRAINT uqNombreTabla_NombreCampos UNIQUE(campo1,[campo2,...])
•CHECK: Se pone el nombre de la restriccion y despues la condicion. Se recomienda nombrar la restriccion como ckNombreTabla_NombreColumna. Sintaxis:
CONSTRAINT ckNombreTabla_NombreColumna CHECK (condicion)
•FOREIGN KEY: En las
...