Estructura · definición de datos

CREATE TABLE

Crea una tabla y define desde el principio qué columnas admite y qué reglas deben cumplir sus datos.

Lectura: 5–7 minEjemplo comprobadoPráctica con pistas
Contenido de esta guía

Qué define CREATE TABLE

CREATE TABLE crea una estructura donde se almacenarán filas. Dentro de los paréntesis declaras las columnas, sus tipos y las restricciones que protegen la integridad de los datos.

Diseñar una tabla no consiste solo en elegir nombres. También debes decidir qué dato identifica cada fila, qué campos son obligatorios, qué valores son válidos y qué relaciones existen con otras tablas.

Sintaxis básica

Tabla de tareas
CREATE TABLE tareas_demo (
  id INTEGER PRIMARY KEY,
  titulo VARCHAR(120) NOT NULL,
  prioridad INTEGER NOT NULL DEFAULT 1,
  completada INTEGER NOT NULL DEFAULT 0,
  CHECK (prioridad BETWEEN 1 AND 3)
);
  • PRIMARY KEY identifica cada fila.
  • NOT NULL impide omitir un valor.
  • DEFAULT aporta un valor cuando la inserción no lo especifica.
  • CHECK rechaza prioridades fuera del intervalo permitido.

Insertar y consultar datos

Datos de prueba
INSERT INTO tareas_demo (id, titulo, prioridad)
VALUES (1, 'Revisar pedidos', 2),
       (2, 'Actualizar inventario', 3);

SELECT id, titulo, prioridad, completada
FROM tareas_demo
ORDER BY id;
Resultado comprobado en SQLite
idtituloprioridadcompletada
1Revisar pedidos20
2Actualizar inventario30

La inserción no proporciona completada, por lo que la tabla utiliza su valor predeterminado, 0.

Elige tipos por significado, no solo por apariencia. Un teléfono, código postal o número de factura puede contener dígitos y seguir siendo texto porque no se utiliza para cálculos aritméticos.

Error frecuente

Crear columnas sin reglas

Una tabla que acepta cualquier valor desplaza todos los controles a la aplicación. Si varias aplicaciones escriben en la misma base, las reglas pueden aplicarse de forma desigual.

Declara en la base las invariantes reales: claves, nulabilidad, unicidad, relaciones y rangos válidos. No añadas restricciones arbitrarias que el negocio no exige.

Comprueba lo aprendido

Básica · diseño

Crea una tabla de categorías

Define categorias_demo con un identificador entero, un nombre obligatorio que no pueda repetirse y una columna activa cuyo valor predeterminado sea 1.

Compatibilidad entre motores

Para decidir entre enteros, decimales, texto y fechas, consulta la comparativa de tipos de datos SQL.

La estructura general de CREATE TABLE es común, pero los tipos de datos, la generación automática de identificadores, las columnas calculadas y varias opciones físicas cambian entre motores. INTEGER PRIMARY KEY tiene un comportamiento especial en SQLite; MySQL utiliza opciones como AUTO_INCREMENT; PostgreSQL y SQL Server ofrecen otras formas de identidad. No presentes una de estas variantes como SQL universal.

Qué debes recordar

  • CREATE TABLE define columnas y reglas, no solo un contenedor vacío.
  • Las restricciones protegen la integridad desde la base de datos.
  • Los tipos deben representar el significado del dato.
  • La generación automática de claves cambia entre motores.

Si un INSERT falla porque el texto no cabe en una columna VARCHAR, revisa el diagnóstico de valores demasiado largos: cómo diagnosticar un valor demasiado largo para VARCHAR.

Conceptos relacionados

Fuentes técnicas consultadas