Alejandro Gómez Quecan
En esta clase no se menciono, sin embargo el tipo de dato CHECK es útil para definir una condición que el dato debe cumplir para ser aceptado. Si no la cumple, el motor rechaza la inserción.
Dominar la creación de tablas es el paso fundamental para construir bases de datos profesionales. Sin restricciones ni llaves primarias, una tabla SQL no es más que una planilla de cálculo oculta dentro de un motor de base de datos. Aquí se explica paso a paso cómo definir campos, asignar tipos de datos y aplicar restricciones que garanticen la integridad de la información.
¿Cómo se crea una tabla básica con tipos de datos en SQL?
El comando CREATE TABLE es la instrucción que indica al motor SQL que debe generar y almacenar una nueva tabla [01:00]. Su sintaxis es directa: se escribe CREATE TABLE, seguido del nombre de la tabla, y entre paréntesis se listan las columnas con su respectivo tipo de dato.
sql CREATE TABLE demo_tipos ( id INTEGER, nombre TEXT, precio NUMERIC(10,2), activo BOOLEAN, fecha_ingreso DATE, creado_en TIMESTAMP );
Cada columna se separa por una coma, excepto la última. El tipo NUMERIC(10,2) se usa para valores con decimales como precios, mientras que BOOLEAN almacena valores de verdadero o falso [02:18]. DATE guarda fechas y TIMESTAMP registra fecha y hora exacta.
Para compilar basta con presionar Control + Enter o el botón run, y el simulador devuelve el mensaje "tabla creada" [03:30].
¿Cómo insertar y consultar datos rápidamente?
El comando INSERT INTO permite agregar registros a la tabla recién creada [03:45]. Junto con VALUES, se proporcionan los datos en el mismo orden de las columnas definidas:
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 [04:30]. Le indica al motor dónde termina cada instrucción. Sin él, el compilador sigue leyendo y puede generar errores inesperados.
¿Qué son las llaves primarias y cómo se definen?
Una llave primaria (primary key) es el identificador único de cada registro en la tabla. Es lo que diferencia una base de datos real de una simple hoja de cálculo [05:10].
Existen dos formas principales de crearlas:
sql CREATE TABLE ejemplo_serial ( id SERIAL PRIMARY KEY, nombre TEXT NOT NULL );
sql CREATE TABLE ejemplo_identity ( id INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, nombre TEXT NOT NULL );
¿Qué restricciones se pueden aplicar a los campos?
Las restricciones (constraints) controlan qué datos se aceptan en cada columna [07:15]:
¿Cómo se aplican estas restricciones en una tabla real de clientes?
La tabla de clientes ilustra cómo combinar múltiples restricciones en un escenario práctico [07:50]:
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 );
Puntos clave de esta estructura:
Para verificar que las tablas se crearon correctamente, se consulta el esquema público con una sentencia SELECT que muestra nombres de columnas, tipos de datos y restricciones aplicadas [10:30].
sql SELECT * FROM information_schema.columns WHERE table_schema = 'public' ORDER BY table_name;
Utilizar correctamente NOT NULL, UNIQUE, DEFAULT y las llaves primarias marca la diferencia entre una base de datos robusta y una simple acumulación de datos sin control. Te queda como desafío crear tu propia tabla con todas las restricciones que consideres necesarias y compartir el resultado en los comentarios.
Alejandro Gómez Quecan
En esta clase no se menciono, sin embargo el tipo de dato CHECK es útil para definir una condición que el dato debe cumplir para ser aceptado. Si no la cumple, el motor rechaza la inserción.
Sebastian Sanchez Jaramillo
excelente la clase muy dinamica y con ejemplos practicos.
Rubens A. Rangel Gomez
Crear una tabla en SQL no es solo definir columnas; cada restricción que aplicas—NOT NULL, UNIQUE, DEFAULT o PRIMARY KEY—convierte tu tabla en un sistema que protege la integridad de los datos. Por ejemplo, un campo correo_electronico con NOT NULL y UNIQUE asegura que no habrá registros vacíos ni duplicados, algo que una simple hoja de cálculo no podría garantizar. Además, usar SERIAL o GENERATED ALWAYS AS IDENTITY permite que cada registro tenga un identificador único automático, evitando conflictos y errores al insertar datos.
Kevin Jeferson Cortes Gomez
que genial que en la lectura ponen el momento del video donde se explica
Marisol Gomez
pero en si es necesario los dos formas
No son necesarias ambas; son simplemente dos caminos distintos para llegar al mismo destino.
La forma 1 (SERIAL) es un atajo antiguo. La forma 2 (GENERATED ALWAYS AS IDENTITY) es el estándar moderno, más preciso y seguro. En programación, a veces el lenguaje evoluciona para darnos herramientas que separan mejor las responsabilidades.
Si pudieras elegir una sola para tus proyectos futuros, ¿cuál te da más tranquilidad al leer tu propio código?
Kenneth Angulo L
En la practica me atrevo a decir que no estaras escribiendo estas sentencias para crear tablas.
Porque los frameworks crean las tablas por ti. (Ojo, no quieo decir que no debamos aprenderlas, pero sobre todo entenderlas)
Cuando quieras crear una tabla para hacer pruebas o para jugar un poco con SQL recurriras a tu biblioteca de comandos, copias y pegas la estructura (como lo hace el profesor en el video) y empiezas a modificar de acuerdo a como necesites.
Jefersson Florez
bien explicado y avanza con un muy buen ritmo
Jose Perez
David Morales
Al contrario, todo bien aplicado!
De hecho te invitaría a que con esa misma tabla hagas lo siguiente:
Fernando José Fuentes Gallegos
Luis Alejandro Lamilla Garzon
Que buena clase, me ha costado demasiado entender muchas cosas que solo se pueden enteder practico es mi inducciona la programacion muchas gracias,
Mario Ever Bernal Portillo
Maria Camila Vélez Zapata
Anette Iniesta Garcia
Ejercicio de hoy:
Juan Quetglas Escarate
Laysha Beato
Rances Ramírez
--tabla: empleados
CREATE TABLE empleados (
empleados_id INTEGER GENERATED ALWAYS as IDENTITY PRIMARY KEY,
nombre TEXT NOT NULL,
apellido TEXT NOT NULL,
email VARCHAR(100) NOT NULL,
fecha_ingreso DATE NOT NULL,
cargo TEXT NOT NULL,
activo BOOLEAN NOT NULL DEFAULT TRUE
);
-- ver estructura de una tabla
SELECT column_name, data_type, is_nullable, column_default
FROM information_schema.columns
WHERE table_name = 'empleados'
ORDER BY ordinal_position;
SELECT table_name
FROM information_schema.tables
WHERE table_name = 'empleados'
ORDER BY table_name;
Kenneth Angulo L
Excelente clase.
Destacar lo siguiente, en el archivo de la clase observar como esta debidamente documentado el encabezado, de esa misma forma vamos a ir armando nuestra biblioteca de comados. (en notion o en cualquier lado).
-- ===============================
-- C11 · CREATE TABLE: claves primarias y restricciones
-- Curso: SQL con PostgreSQL — TiendaLatam
-- Ejecutar en: tiendalatam > public
-- ===============================
Jesús Ulises Guadarrama Chávez
david ramos
de que me interrumpen cuando veo un video mientras anoto mis ejercicios y temas ademas de que me consumen tiempo
Entiendo el punto. Esos cuestionarios están ahí para forzar una pausa activa y asegurar que los conceptos de PRIMARY KEY o NOT NULL se asienten antes de pasar a la siguiente estructura, pero entiendo que rompen tu ritmo de trabajo.
Lamentablemente, no hay un botón para saltarlos. Si te distraen tanto, ¿has probado ver el video a velocidad 1.5x o 2x para minimizar el tiempo que pierdes en esas pausas?