HDP115

Restricciones en SQL

Las restricciones en SQL se aplican a las tablas y columnas para garantizar la integridad de los datos.

CE

Cristian Escalante

Última actualización: 5 de mayo de 2025

sql
programación
desarrollo

Constraints en SQL

Las restricciones en SQL se aplican a las tablas y columnas para garantizar la integridad de los datos. Existen dos caminos para definir restricciones: al crear la tabla o al modificarla.

Las restricciones más comunes son:

  • NOT NULL: asegura que una columna no contenga valores nulos.
  • UNIQUE: garantiza que todos los valores en una columna sean únicos.
  • PRIMARY KEY: define una columna o conjunto de columnas como clave primaria, asegurando que los valores sean únicos y no nulos.
  • FOREIGN KEY: establece una relación entre dos tablas, asegurando que los valores en una columna de una tabla coincidan con los valores en la clave primaria de otra tabla.
  • CHECK: permite definir una condición que los valores de una columna deben cumplir.
  • DEFAULT: establece un valor predeterminado para una columna si no se proporciona un valor al insertar un nuevo registro.
  • INDEX: mejora el rendimiento de las consultas al crear un índice en una o más columnas.
  • AUTO_INCREMENT: se utiliza en MySQL para generar automáticamente un valor único para una columna, comúnmente utilizada en claves primarias. En otras bases de datos, se utiliza SERIAL o IDENTITY.
  • UNSIGNED: se utiliza en MySQL para definir que una columna numérica no puede contener valores negativos.
  • CHARACTER SET: define el conjunto de caracteres utilizado para almacenar datos en una columna.
  • COLLATE: define la forma en que se comparan y ordenan los datos en una columna, especialmente útil para datos de texto.

Ejemplos prácticos

Restricción NOT NULL

Usamos la restricción NOT NULL para asegurarnos de que una columna no contenga valores nulos, lo que es útil para campos obligatorios. Por ejemplo, al crear una tabla de empleados, podemos asegurarnos de que el nombre y el salario no sean nulos:

CREATE TABLE empleados (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  salario DECIMAL(10, 2) NOT NULL
);

Restricción UNIQUE

Usamos la restricción UNIQUE para garantizar que todos los valores en una columna sean únicos. Por ejemplo, al crear una tabla de usuarios, podemos asegurarnos de que el correo electrónico sea único:

CREATE TABLE usuarios (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  correo VARCHAR(100) UNIQUE NOT NULL
);

Restricción PRIMARY KEY

La restricción PRIMARY KEY se utiliza para definir una columna o conjunto de columnas como clave primaria, asegurando que los valores sean únicos y no nulos. Por ejemplo, al crear una tabla de productos, podemos definir el ID del producto como clave primaria:

CREATE TABLE productos (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  precio DECIMAL(10, 2) NOT NULL
);

Restricción FOREIGN KEY

La restricción FOREIGN KEY establece una relación entre dos tablas, asegurando que los valores en una columna de una tabla coincidan con los valores en la clave primaria de otra tabla. Por ejemplo, al crear una tabla de pedidos, podemos relacionar el ID del cliente con la tabla de clientes:

CREATE TABLE clientes (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL
);

CREATE TABLE cuentas (
  id INT PRIMARY KEY,
  cliente_id INT,
  saldo DECIMAL(10, 2) NOT NULL,
  FOREIGN KEY (cliente_id) REFERENCES clientes(id)
);

Restricción CHECK

La restricción CHECK permite definir una condición que los valores de una columna deben cumplir. Por ejemplo, al crear una tabla de productos, podemos asegurarnos de que el precio sea mayor que cero:

CREATE TABLE productos (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  precio DECIMAL(10, 2) CHECK (precio > 0) NOT NULL
);

Restricción DEFAULT

La restricción DEFAULT establece un valor predeterminado para una columna si no se proporciona un valor al insertar un nuevo registro. Por ejemplo, al crear una tabla de empleados, podemos establecer un salario predeterminado:

CREATE TABLE empleados (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  salario DECIMAL(10, 2) DEFAULT 30000.00 NOT NULL
);

Restricción INDEX

La restricción INDEX mejora el rendimiento de las consultas al crear un índice en una o más columnas. Por ejemplo, al crear una tabla de productos, podemos crear un índice en la columna nombre:

CREATE TABLE productos (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  precio DECIMAL(10, 2) NOT NULL,
  INDEX (nombre)
);

Restricción AUTOINCREMENT

La restricción AUTOINCREMENT se utiliza en MySQL para generar automáticamente un valor único para una columna, comúnmente utilizada en claves primarias. Por ejemplo, al crear una tabla de empleados, podemos definir el ID del empleado como autoincremental:

CREATE TABLE empleados (
  id INT PRIMARY KEY AUTO_INCREMENT,
  nombre VARCHAR(50) NOT NULL,
  salario DECIMAL(10, 2) NOT NULL
);

Restricción UNSIGNED

La restricción UNSIGNED se utiliza en MySQL para definir que una columna numérica no puede contener valores negativos. Por ejemplo, al crear una tabla de productos, podemos definir el precio como unsigned:

CREATE TABLE productos (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) NOT NULL,
  precio DECIMAL(10, 2) UNSIGNED NOT NULL
);

Restricción CHARACTER SET

La restricción CHARACTER SET define el conjunto de caracteres utilizado para almacenar datos en una columna. Por ejemplo, al crear una tabla de usuarios, podemos definir el conjunto de caracteres como UTF-8:

CREATE TABLE usuarios (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) CHARACTER SET utf8 NOT NULL,
  correo VARCHAR(100) NOT NULL
);

Restricción COLLATE

La restricción COLLATE define la forma en que se comparan y ordenan los datos en una columna, especialmente útil para datos de texto. Por ejemplo, al crear una tabla de productos, podemos definir el collation como case insensitive:

CREATE TABLE productos (
  id INT PRIMARY KEY,
  nombre VARCHAR(50) COLLATE utf8_general_ci NOT NULL,
  precio DECIMAL(10, 2) NOT NULL,
  INDEX (nombre)
);
Tipos de datos en SQL
Los tipos de datos en SQL son fundamentales para almacenar y...
Ejemplo de restricción NOT NULL
Ejemplos de restricción NOT NULL en SQL
Referencias

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos de GIT

Aprende los conceptos básicos de GIT

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025