31 enero, 2020

Constraints (Restricciones)

USO DE LOS CONSTRAINTS (RESTRICCIONES)

Para asegurar la integrar de los datos almacenados en nuestras tablas, podemos crear los famosos constraints (restricciones), lo cuales nos van a permitir  limitar el tipo de dato que puede insertarse en una tabla.

Dichas restricciones pueden especificarse cuando la tabla se crea por primera vez a través de la instrucción CREATE TABLE, o luego de crear la tabla a través de la instrucción ALTER TABLE.

Los diferentes tipos de restricción que existen son:
  • PRIMARY KEY (esta ya la hemos visto y permite identificar cada fila de una tabla como única)
  • FOREIGN KEY (esta también la hemos visto y sirve como enlace hacia otra tabla donde en esta última, dicho enlace son la o las columnas que forman la PRIMARY KEY.)
  • UNIQUE
  • CHECK
  • DEFAULT


CASO: COMIDAS CIBER

Creamos la base de datos COMIDASCIBER y creamos las siguientes tablas


Solución


No se preocupen si no tienen instalado el SQL Server, mi objetivo es que ustedes aprendan y practiquen asi no tengan esta herramienta. Por lo tanto, podemos recurrir a un editor de SQL online que soporte MS SQL Server. Yo les comparto uno que me gusta mucho usarlo para mis ejemplos. https://rextester.com/

REXTEXTER

Aunque tenga sus limitaciones es muy sencilla de usar, solo tienen que pegar el query en el editor y ejecutarlo haciendo clic en el botón Runt it (F8).

Mi recomendación es que cuando tengan muchas instrucciones combinadas (insert, delete, update, select, create, alter, drop, etc), ejecuten parte por parte del código comentando las partes que no necesitan en ese momento. OJO: Pero siempre debe colocarse el código que crea la tablas y los registros antes de cualquier operación, ya que el sistema no guarda la base de datos y no podemos usar el comando USE NOMBRE_BASE DATOS para activar la base de datos y a partir de ello comenzar a hacer consultas, por lo tanto, el código que crea las tablas y los registros siempre deben estar antes de realizar cualquier operación y debe ejecutarse todo, ya que RexTexter no permite seleccionar un extracto de código para compilar solo esa parte, la aplicación ejecuta todo lo que esta en el editor. Pero a pesar de todo ello, es muy buena.


Ingresa al siguiente enlace y ejecuta el script: https://rextester.com/FNK47023


1. DEFINICIÓN Y USO DEL UNIQUE CONSTRAINT

La restricción UNIQUE identifica de forma exclusiva cada registro en una tabla de base de datos. Las restricciones de CLAVE ÚNICA y PRIMARIA proporcionan una garantía de unicidad para una columna o conjunto de columnas. Una restricción PRIMARY KEY tiene automáticamente una restricción UNIQUE definida en ella. Tenga en cuenta que puede tener muchas restricciones ÚNICAS por tabla, pero solo una restricción PRIMARY KEY por tabla. 

La restricción UNIQUE se puede añadir a una columna de una tabla, después de ser creada, mediante la sentencia ALTER TABLE.


Ejemplo: Crear un unique constraint que valide o impida duplicar el dni de un cliente, para ello deberá modificar la tabla CLIENTES.


Clic en enlace para ejecutar el query: https://rextester.com/MMQDT86152

Ejemplo. Crear un unique constraint desde la creación de la tabla CLIENTE


Clic en enlace para ejecutar el query: https://rextester.com/JNBJ60505

2. DEFINICIÓN Y USO DEL CHECK CONSTRAINT

Es importante imponer la integridad de dominio, asegurar que sólo puedan existir entradas de los tipos o rangos esperados para una columna determinada). SQL Server impone la integridad de dominio a través del Check Constraint.

Una columna puede tener cualquier número de restricciones CHECK y la condición puede incluir varias expresiones lógicas combinadas con AND y OR. Por ello, las restricciones CHECK para una columna se validan en el orden en que se crean.

La condición de búsqueda debe dar como resultado una expresión booleana y no puede hacer referencia a otra tabla.
Una restricción CHECK, en el nivel de columna, sólo puede hacer referencia a la columna restringida y una restricción CHECK, en el nivel de tabla, sólo puede hacer referencia a columnas de la misma tabla.

Las restricciones CHECK y las reglas sirven para la misma función de validación de los datos durante las instrucciones INSERT y DELETE.

Cuando hay una regla y una o más restricciones CHECK para una columna o columnas, se evalúan todas las restricciones.


Ejemplo: Crear un check constraint que valide que el sexo del cliente solo sea F de femenino o M de masculino

Clic en enlace para ejecutar el query: https://rextester.com/edit/LYF35916

Ejemplo: Crear un check constraint desde la creación de la tabla CLIENTE


Clic en enlace para ejecutar el query: https://rextester.com/DKBW58212

3. DEFINICIÓN Y USO DEL DEFAULT CONSTRAINT

La restricción DEFAULT se usa para proporcionar un valor predeterminado para una columna. El valor predeterminado se agregará a todos los registros nuevos SI no se especifica ningún otro valor.
La restricción DEFAULT se puede añadir a una columna de una tabla, después de ser creada, mediante la sentencia ALTER TABLE.


Ejemplo: Crear un default constraint que establezca un valor por defecto a la columna dirección

Clic en enlace para ejecutar el query: https://rextester.com/QIHDB17943

Ejemplo: Crear un default constraint desde la creación de la tabla CLIENTE

Clic en enlace para ejecutar el query: https://rextester.com/LICXE38272

Verificando el campo INDENTIDAD-IDENTITY de la tabla COMPROBANTE


Clic en enlace para ejecutar el query: https://rextester.com/JUKCZ66555

Eliminar Constraints de la tabla


Clic en enlace para ejecutar el query: https://rextester.com/FMAWX50346

DEFINICIÓN Y USO DEL IDENTITY

Crea una columna de identidad en una tabla. Esta propiedad se usa con las instrucciones CREATE TABLE y ALTER TABLE de Transact-SQL. 

Debe especificar tanto el valor de inicialización como el incremento, o bien ninguno de los dos. Si no se especifica ninguno, el valor predeterminado es (1,1).


Ejemplo: Se activa la base de datos Ventas que creamos en el post anterior; luego, se verifica si existe la tabla new_empleados para eliminarla y proceder a su creación.


Ejecuta la solución en RexTexter: https://rextester.com/XGW43433

Script completo



Ejecuta la solución en RexTexter: https://rextester.com/POT83991

Si queremos ver las restricciones en la base de datos, debemos actualizar la carpeta base de datos y entramos a la tabla CLIENTE para ver las restricciones que le acabamos de crear.


¡Acabas de ver el tema Constraints del curso de Base de Datos en SQL Server! ¡Fácil verdad! Ir al índice

Asimismo, si quieres comprar la guía completa con todos los temas, ejercicios, evaluaciones, proyectos, aplicaciones, banco de datos y más; puedes ingresar al siguiente enlace. Y si eres seguidor accedes a un descuento del -%50.

¡Quiero esto!

No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!