Las restricciones (constraints) son reglas que imponen la integridad de los datos en una tabla. Añadamos restricciones NOT NULL
y UNIQUE
a una nueva tabla llamada users
.
-
Cree una tabla llamada users
con restricciones. Ejecute este comando en el prompt sqlite>
:
CREATE TABLE users (
id INTEGER PRIMARY KEY,
username TEXT NOT NULL UNIQUE,
email TEXT NOT NULL,
age INTEGER
);
Este comando crea una tabla llamada users
con las siguientes restricciones:
username
no puede ser NULL
y debe ser UNIQUE
.
email
no puede ser NULL
.
Desglosemos el comando:
CREATE TABLE users
: Esto le dice a SQLite que cree una nueva tabla llamada users
.
id INTEGER PRIMARY KEY
: Esto define una columna llamada id
con el tipo de dato INTEGER
. La restricción PRIMARY KEY
asegura que cada valor en esta columna sea único y sirva como identificador primario para cada fila.
username TEXT NOT NULL UNIQUE
: Esto define una columna llamada username
con el tipo de dato TEXT
. La restricción NOT NULL
asegura que esta columna no pueda estar vacía, y la restricción UNIQUE
asegura que todos los valores en esta columna sean distintos.
email TEXT NOT NULL
: Esto define una columna llamada email
con el tipo de dato TEXT
. La restricción NOT NULL
asegura que esta columna no pueda estar vacía.
age INTEGER
: Esto define una columna llamada age
con el tipo de dato INTEGER
.
-
Ahora, intentemos insertar algunos datos que violen estas restricciones para ver cómo funcionan. Primero, intente insertar un usuario sin un nombre de usuario (username):
INSERT INTO users (email, age) VALUES ('[email protected]', 25);
Verá un error porque la columna username
está definida como NOT NULL
.
Resultado Esperado:
Error: NOT NULL constraint failed: users.username
Este error muestra que SQLite aplica la restricción NOT NULL
en username
, impidiendo la inserción.
-
A continuación, intente insertar un usuario con un nombre de usuario (username) duplicado. Primero, inserte un usuario válido:
INSERT INTO users (username, email, age) VALUES ('johndoe', '[email protected]', 30);
Luego, intente insertar otro usuario con el mismo nombre de usuario:
INSERT INTO users (username, email, age) VALUES ('johndoe', '[email protected]', 25);
Verá un error porque la columna username
está definida como UNIQUE
.
Resultado Esperado:
Error: UNIQUE constraint failed: users.username
Este error demuestra que SQLite aplica la restricción UNIQUE
en username
, impidiendo valores duplicados.