Curso de Fundamentos de Bases de Datos

Creación de tablas con llaves primarias en SQL

Curso de Fundamentos de Bases de Datos

Contenido del curso

Grabación

PlatziLearn

0:0015:31

Recursos

Resumen

Dominar la creación de tablas es el paso fundamental para construir bases de datos sólidas y bien estructuradas. Antes de lanzarse a un proyecto real, es esencial comprender cómo definir columnas, asignar tipos de datos, establecer llaves primarias y aplicar restricciones que diferencien una base de datos profesional de una simple planilla de cálculo.

¿Cómo se crea una tabla básica con tipos de datos en SQL?

El comando CREATE TABLE [0:28] indica al motor de SQL que debe generar y almacenar una nueva tabla. Inmediatamente después se escribe el nombre de la tabla, se abren paréntesis y dentro se definen las columnas con su respectivo tipo de dato, separadas por comas.

sql CREATE TABLE demo_tipos ( id INTEGER, nombre TEXT, precio NUMERIC(10,2), activo BOOLEAN, fecha_ingreso DATE, creado_en TIMESTAMP );

Cada columna sigue una sintaxis simple: nombre de la columna, un espacio y el tipo de dato que le corresponde. Por ejemplo, precio utiliza NUMERIC(10,2) porque almacena valores con decimales, mientras que activo usa BOOLEAN para representar un estado de verdadero o falso [1:30].

Para compilar y ejecutar se presiona Control + Enter o el botón run. El motor responde con un output confirmando que la tabla fue creada [2:23].

¿Cómo insertar y consultar datos de prueba?

Una vez creada la tabla, se pueden incorporar registros con el comando INSERT INTO seguido del nombre de la tabla y la cláusula VALUES con los datos en el orden de las columnas [2:33].

sql INSERT INTO demo_tipos VALUES (1, 'Producto demo', 29.99, true, '2024-01-15', '2024-01-15 10:30:00'); SELECT * FROM demo_tipos;

El punto y coma al final de cada sentencia es obligatorio [3:22]. Le indica al motor dónde termina cada instrucción. Omitirlo puede generar errores de compilación, ya que el motor intentará leer múltiples sentencias como una sola.

¿Qué son las llaves primarias y cómo se definen?

Una tabla sin llave primaria se comporta como una hoja de cálculo oculta dentro de la base de datos [4:06]. Las llaves primarias garantizan que cada registro sea único e identificable. Existen dos formas principales de definirlas.

¿Cuál es la diferencia entre SERIAL y GENERATED ALWAYS AS IDENTITY?

La forma uno utiliza el tipo de dato SERIAL [4:28], que incrementa automáticamente el valor del campo con cada nuevo registro insertado.

sql CREATE TABLE ejemplo_serial ( id SERIAL PRIMARY KEY, nombre TEXT NOT NULL );

La forma dos, más moderna y recomendada, emplea GENERATED ALWAYS AS IDENTITY [5:30]. Esta opción sigue el estándar SQL actualizado y ofrece mayor control.

sql CREATE TABLE ejemplo_identity ( id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, nombre TEXT NOT NULL );

Ambas logran el mismo resultado: un campo que se autoincrementa y funciona como identificador único de cada fila.

¿Qué restricciones se aplican a los campos de una tabla?

Las restricciones son las reglas que controlan qué datos pueden ingresar a cada columna. Estas son las más utilizadas [6:18]:

  • NOT NULL: el campo no admite valores vacíos.
  • UNIQUE: impide que se repitan valores, como en el caso de un correo electrónico.
  • DEFAULT: asigna un valor automático cuando no se proporciona uno, por ejemplo CURRENT_DATE para registrar la fecha actual del sistema [7:23].
  • PRIMARY KEY: identifica de forma única cada registro de la tabla.

En la tabla de clientes se observa cómo se combinan estas restricciones [6:30]:

sql CREATE TABLE clientes ( cliente_id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, nombre TEXT NOT NULL, correo_electronico VARCHAR(100) NOT NULL UNIQUE, telefono VARCHAR(20), fecha_registro DATE NOT NULL DEFAULT CURRENT_DATE, activo BOOLEAN NOT NULL DEFAULT true, tipo_cliente_id INTEGER NOT NULL );

El campo telefono no tiene restricciones porque algunos clientes podrían no tener uno registrado. En cambio, correo_electronico combina NOT NULL y UNIQUE para asegurar que siempre exista y nunca se duplique [7:04]. El campo activo se establece como true por defecto, ya que al dar de alta un cliente lo lógico es que esté activo [7:55].

Para verificar que las tablas se crearon correctamente con sus restricciones, se consulta el esquema público con una sentencia SELECT sobre information_schema [9:05], lo que devuelve el nombre de cada columna, su tipo de dato, si permite nulos y sus valores por defecto.

Aplicar correctamente restricciones, valores por defecto y llaves primarias marca la diferencia entre una base de datos robusta y una simple tabla sin estructura. Si ya practicaste, crea tu propia tabla con todas las restricciones que quieras y comparte el resultado en los comentarios.

Creación de tablas con llaves primarias en SQL