SQL Restricciones (Constraints)


Restricciones SQL (Constraints)

Las restricciones SQL se utilizan para especificar las reglas de los datos en una tabla.

Si existe una operación de datos que viole una restricción, la operación será terminada por la restricción.

Las restricciones se pueden especificar al crear la tabla (mediante la sentencia CREATE TABLE) o después de crear la tabla (mediante la sentencia ALTER TABLE).

Sintaxis de SQL CREATE TABLE + CONSTRAINT

CREATE TABLE table_name
(
    column_name1 data_type(size) constraint_name,
    column_name2 data_type(size) constraint_name,
    column_name3 data_type(size) constraint_name,
    ....
);

En SQL, tenemos las siguientes restricciones:

  • NOT NULL- Indica que una columna no puede almacenar valores NULL.
  • UNIQUE- Garantiza que cada fila de una columna debe tener un valor único.
  • PRIMARY KEY- Es la combinación de NOT NULL y UNIQUE. Asegura que una columna (o la combinación de dos o más columnas) tenga un identificador único, lo que ayuda a encontrar un registro específico en una tabla de manera más fácil y rápida.
  • FOREIGN KEY- Garantiza la integridad referencial al hacer que los datos de una tabla coincidan con los valores de otra tabla.
  • CHECK- Garantiza que los valores de una columna cumplan con las condiciones especificadas.
  • DEFAULT- Especifica el valor predeterminado cuando no se asigna un valor a una columna.
  • INDEX- Se utiliza para acceder rápidamente a los datos de las tablas de la base de datos.

1. NOT NULL

Asegura que una columna no pueda tener valores NULL.

Ejemplo

CREATE TABLE Students (
    StudentID INT NOT NULL,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    Age INT
);

2. UNIQUE

Asegura que todos los valores de una columna sean únicos.

Ejemplo

CREATE TABLE Employees (
    EmployeeID INT NOT NULL UNIQUE,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    Email VARCHAR(100) UNIQUE
);

3. PRIMARY KEY

Identifica de manera única cada fila de registro en una tabla. La restricción PRIMARY KEY es la combinación de NOT NULL y UNIQUE.

Ejemplo

CREATE TABLE Orders (
    OrderID INT NOT NULL PRIMARY KEY,
    OrderNumber INT NOT NULL,
    OrderDate DATE NOT NULL
);

4. FOREIGN KEY

Asegura que los valores de una tabla coincidan con los valores de otra tabla, estableciendo así una relación entre las dos tablas.

Ejemplo

CREATE TABLE Orders (
    OrderID INT NOT NULL PRIMARY KEY,
    OrderNumber INT NOT NULL,
    CustomerID INT,
    FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

5. CHECK

Asegura que los valores de una columna cumplan condiciones específicas.

Ejemplo

CREATE TABLE Products (
    ProductID INT NOT NULL PRIMARY KEY,
    ProductName VARCHAR(100) NOT NULL,
    Price DECIMAL(10, 2) CHECK (Price >= 0)
);

6. DEFAULT

Establece un valor predeterminado para una columna.

Ejemplo

CREATE TABLE Customers (
    CustomerID INT NOT NULL PRIMARY KEY,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50),
    JoinDate DATE DEFAULT GETDATE()
);

7. INDEX

Se utiliza para acceder rápidamente a los datos de las tablas de la base de datos.

CREATE INDEX idx_lastname ON Employees (LastName);

Ejemplo completo

Ejemplo

CREATE TABLE Students (
    StudentID INT NOT NULL PRIMARY KEY,
    LastName VARCHAR(50) NOT NULL,
    FirstName VARCHAR(50) NOT NULL,
    Age INT CHECK (Age >= 18),
    Email VARCHAR(100) UNIQUE,
    EnrollmentDate DATE DEFAULT GETDATE()
);

Mediante estas restricciones, el sistema de gestión de bases de datos puede garantizar la consistencia, integridad y precisión de los datos.

En las siguientes secciones, explicaremos en detalle cada tipo de restricción.

Otras extensiones