Los clubes del instituto
El instituto quiere apuntar sus clubes: ajedrez, fotografía, teatro. Y todavía no existe ninguna tabla.
Antes de guardar datos hay que construir el sitio donde irán. Es como hacer las estanterías antes de colocar los libros.
Hoy construyes tablas tú.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| CREATE TABLE | La orden que crea una tabla nueva con sus columnas. | CREATE TABLE clubs (...) |
| Tipo de dato | Qué clase de valor guarda una columna: número entero, decimal o texto. | INTEGER, REAL, TEXT |
| Restricción | Una regla que los datos de una columna tienen que cumplir. | NOT NULL |
| Valor por defecto | El dato que se guarda solo si no escribes ninguno. | DEFAULT 0 |
| Esquema | El plano de la base: sus tablas, columnas y reglas. | Todos los CREATE TABLE |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
CREATE TABLE
Escribes CREATE TABLE, el nombre de la tabla y, entre paréntesis, la lista de columnas. Cada columna lleva su nombre y su tipo.
Los tipos que usarás son tres: INTEGER para números enteros, REAL para decimales y TEXT para texto.
Pruébalo: tu primera tabla
-- Esta línea borra la tabla si ya existía, para poder repetir la prueba.
DROP TABLE IF EXISTS clubs;
CREATE TABLE clubs (
id INTEGER PRIMARY KEY,
name TEXT,
members INTEGER
);
INSERT INTO clubs VALUES (1, 'Ajedrez', 14);
SELECT * FROM clubs;
Ejemplo resuelto: el tipo de cada columna
| Dato | Tipo | Por qué |
|---|---|---|
| Número de socios: 14 | INTEGER | Es un número entero |
| Cuota al mes: 2.5 euros | REAL | Tiene decimales |
| Nombre del club: Ajedrez | TEXT | Es texto |
| Día de reunión: martes | TEXT | Es texto, aunque sea una fecha |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Reglas para los datos
Una restricción es una regla que pones a una columna. La base la vigila por ti y rechaza el dato que no la cumple.
Así un club sin nombre o un número de socios negativo no entran nunca en la tabla.
Las restricciones más útiles
| Restricción | Qué exige | Ejemplo |
|---|---|---|
| PRIMARY KEY | Identifica cada fila y no se repite | id INTEGER PRIMARY KEY |
| NOT NULL | La columna nunca puede quedar vacía | name TEXT NOT NULL |
| UNIQUE | No se puede repetir el valor | email TEXT UNIQUE |
| DEFAULT | Si no escribes dato, se guarda este | members INTEGER DEFAULT 0 |
| CHECK | El dato debe cumplir una condición | CHECK (members >= 0) |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Pruébalo: una tabla con reglas
DROP TABLE IF EXISTS clubs;
CREATE TABLE clubs (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
email TEXT UNIQUE,
members INTEGER DEFAULT 0,
CHECK (members >= 0)
);
INSERT INTO clubs (name, email) VALUES ('Ajedrez', '[email protected]');
INSERT INTO clubs (name, email, members) VALUES ('Fotografía', '[email protected]', 12);
SELECT * FROM clubs;
-- Ajedrez no tenía socios escritos: DEFAULT guarda un 0.
Repaso rápido: restricciones
Inténtalo
Repaso rápido: restricciones
3 preguntasTus respuestas se corrigen aquí y no se guardan. Una cuenta guarda tus resultados.