English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Restricciones de SQLite

Restricciones - son reglas impuestas a las columnas de datos de la tabla. Estas se utilizan para limitar los tipos de datos que pueden ingresar a la tabla. Esto asegura la precisión y fiabilidad de los datos en la base de datos.

Las restricciones pueden ser de nivel de columna o de nivel de tabla. Las restricciones de nivel de columna solo se aplican a una columna, mientras que las restricciones de nivel de tabla se aplican a toda la tabla.

A continuación, se presentan las restricciones comunes disponibles en SQLite.

  • NOT NULL Restricciones - aseguran que la columna no pueda tener valores NULL.

  • DEFAULT Restricciones - proporcionan un valor predeterminado para la columna si no se especifica.

  • UNIQUE Restricciones - aseguran que todos los valores en la columna sean diferentes.

  • Primary Key - identifica de manera única cada fila en la tabla de la base de datos./Registro.

  • CHECK Restricciones - aseguran que todos los valores en la columna cumplan con ciertas condiciones.

Restricción NOT NULL

Por defecto, una columna puede almacenar valores NULL. Si no desea que una columna tenga valores NULL,则需要在此列上 definir este tipo de restricción para especificar que esta columna no permite NULL.

NULL es equivalente a no tener datos, representa datos desconocidos.

Ejemplo

Por ejemplo, la siguiente sentencia SQLite crea una nueva tabla llamada COMPANY y agrega cinco columnas, de las cuales tres (ID, NAME y AGE) especifican que no aceptan NULL.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Restricción DEFAULT

Cuando la sentencia INSERT INTO no proporciona valores específicos, la restricción DEFAULT proporciona un valor predeterminado para la columna.

Ejemplo

Por ejemplo, la siguiente sentencia SQLite crea una nueva tabla llamada COMPANY y agrega cinco columnas. Aquí, la columna SALARY se establece por defecto.5000.00, por lo tanto, si la sentencia INSERT INTO no proporciona un valor para esta columna, por defecto, esta columna se establecerá como5000.00。

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Restricción UNIQUE

La restricción UNIQUE previene que dos registros tengan el mismo valor en una columna específica. Por ejemplo, en la tabla COMPANY, es posible que desee evitar que dos o más personas tengan la misma edad.

Ejemplo

Por ejemplo, la siguiente sentencia SQLite crea una nueva tabla llamada COMPANY y agrega cinco columnas. Aquí, la columna AGE se establece como UNIQUE, por lo que no se pueden tener dos registros con la misma edad.-

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL UNIQUE,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00
);

Restricción PRIMARY Key

La restricción PRIMARY KEY identifica de manera única cada registro en la tabla de base de datos. Puede haber más columnas UNIQUE, pero solo una clave primaria en la tabla. Es importante considerar la clave primaria al diseñar tablas de bases de datos. La clave primaria es un ID único.

Las utilizamos para referenciar filas de tablas. Al crear relaciones entre tablas, la clave primaria se convierte en clave foránea en otras tablas. Debido a la 'supervisión a largo plazo del código', la clave primaria en SQLite puede ser NULL. En otros sistemas de bases de datos no es así.

La clave primaria es un campo en la tabla que identifica de manera única cada fila en la tabla de base de datos/registros. La clave primaria debe contener valores únicos. Las columnas de clave primaria no pueden tener valores NULL.

Una tabla puede tener solo una clave primaria, que puede estar formada por un solo campo o múltiples campos. Cuando se utilizan múltiples campos como clave primaria, se denominanclave compuesta

No se pueden tener dos registros con el mismo valor field(s) si la tabla define algún campo(s) de clave primaria en otra tabla.

Ejemplo

Ya ha visto muchos ejemplos anteriormente, en los que creamos una tabla COMPANY con ID como clave primaria.

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL
);

Restricción CHECK

Las restricciones CHECK permiten que se verifique la condición de los valores introducidos en los registros. Si el cálculo de la condición da false, el registro viola la restricción y no se ingresa en la tabla.

Ejemplo

Por ejemplo, a continuación se muestra cómo SQLite crea una nueva tabla llamada COMPANY y agrega cinco columnas. Aquí, hemos agregado una columna CHECK con SALARY, por lo que no puede haber ningún SALARY 0.

CREATE TABLE COMPANY3(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    CHECK(SALARY > 0)
);

Eliminar restricciones

SQLite admite un subconjunto limitado de ALTER TABLE. El comando ALTER TABLE de SQLite permite al usuario renombrar tablas o agregar nuevas columnas a tablas existentes. No se puede renombrar columnas, eliminar columnas o agregar o eliminar restricciones en la tabla.