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
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
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
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
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
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
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
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