Constraints en MySQL: establecer límites

Anteriormente hablamos sobre bases de datos con MySQL o MariaDB. También explicamos cómo crear tablas e insertar o actualizar registros. Un aspecto muy importante a tener en cuenta al realizar estas últimas operaciones es la validez e integridad de dichos datos. Entre otras cosas, esto significa asegurarnos de evitar registros duplicados, y de que los valores de cada campo tengan sentido. Por ejemplo, podríamos desear que en un campo llamado EdadAlumno se puedan ingresar valores enteros entre 18 y 35. Por eso, en este post presentaremos las restricciones o constraints en MySQL. Como en casos anteriores, lo que digamos en este post aplica también a MariaDB.

Hablemos sobre constraints en MySQL o MariaDB
Hablemos sobre constraints en MySQL o MariaDB

Constraints en MySQL

Para empezar, veamos cuáles son los constraints disponibles en MySQL.

Clave primaria

Para empezar a hablar de restricciones, tenemos que nombrar a la clave primaria de la tabla. El (o los) campo(s) que se define(n) como tal debe contener valores únicos. Por definición, una clave primaria no acepta valores del tipo NULL

Clave foránea o externa

A continuación, las claves foráneas o externas se utilizan para establecer una relación entre dos tablas. Pueden estar compuestas por un campo (o varios) que referencia a la clave primaria en otra tabla. La tabla que contiene la clave externa se denomina hija de la que contiene la clave primaria (llamada tabla referenciada o padre de la primera).

Not null

Por defecto, una columna aceptará valores del tipo NULL. Si se especifica la restricción NOT NULL, no se permitirá el ingreso o la actualización de un registro que no contenga un valor distinto a NULL para el campo en cuestión.

Default

Esta restricción se utiliza para indicar el valor por defecto que se debe asignar a un campo únicamente en el caso de que no se indique uno explícitamente.

Check

Acá es donde «la cosa se pone interesante». La constraint CHECK permite restringir el rango de valores permitidos para un campo dado. Este rango puede especificarse de manera explícita para una columna en particular, o utilizando los valores presentes en otras columnas.

Unique

Esta restricción asegura que todos los valores presentes en una columna sean diferentes. Cuando creamos una clave primaria, automáticamente se establece una constraint UNIQUE. Si bien se pueden tener tantas restricciones UNIQUE como queramos en una tabla, solamente se permite una clave primaria en cada tabla.

En próximos posts ilustraremos cómo crear y utilizar cada una de estas constraints en MySQL mediante ejemplos. ¡No olviden suscribirse al blog para no perderse detalle!