Fundamentos de SQL: CREATE, SELECT, INSERT, UPDATE, DELETE
Al finalizar este tema
Podrás crear tablas con SQL, insertar, buscar, modificar y eliminar datos.
¿Qué es SQL?
SQL (Structured Query Language) es un lenguaje para realizar consultas en bases de datos. Es ligeramente diferente de un "lenguaje de programación": en lugar de bucles o funciones, es un lenguaje declarativo que permite solicitar: "dame estos datos".
SQL se utiliza en la mayoría de las bases de datos relacionales, como MySQL, PostgreSQL y SQLite. Dado que su sintaxis es casi idéntica, aprender una te permitirá utilizar las demás.
CREATE TABLE — Crear una tabla
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);| Palabra clave | Significado |
|---|---|
INT | Entero |
VARCHAR(50) | Cadena de hasta 50 caracteres |
AUTO_INCREMENT | Autoincremento (1, 2, 3, ...) |
PRIMARY KEY | Identificador único de esta fila |
NOT NULL | No se permite valor vacío |
DEFAULT | Valor utilizado si no se proporciona uno |
La tabla es el esquema de los datos. Una vez creada, solo se pueden insertar datos que se ajusten a su estructura.
INSERT — Insertar datos
-- Insertar una fila
INSERT INTO users (name, email) VALUES ('Kim Hoon', 'hoon@example.com');
-- Insertar varias filas a la vez
INSERT INTO users (name, email) VALUES
('Lee Su', 'su@example.com'),
('Park Jin', 'jin@example.com');id y created_at no se especifican, pero se completan automáticamente gracias a AUTO_INCREMENT y DEFAULT.
SELECT — Lectura de datos
-- Consultar todos los registros
SELECT * FROM users;
-- Solo columnas específicas
SELECT name, email FROM users;
-- Búsqueda por condición
-- Búsqueda de coincidencia parcial
SELECT * FROM users WHERE email LIKE '%@naver.com';
-- Ordenamiento
SELECT * FROM users ORDER BY created_at DESC;
-- Limitación de cantidad
SELECT * FROM users ORDER BY id DESC LIMIT 10;SELECT es la instrucción más utilizada en SQL. Se emplea WHERE para establecer condiciones, ORDER BY para ordenar y LIMIT para limitar la cantidad de resultados.
* significa "todas las columnas". Aunque es práctico, en entornos profesionales se recomienda especificar solo las columnas necesarias para reducir la transferencia de datos innecesarios.
UPDATE — Modificación de datos
-- Cambiar el correo electrónico de un usuario específico
UPDATE users SET email = 'new@example.com' WHERE id = 1;
-- Modificar varias columnas simultáneamente
UPDATE users SET name = 'Kim Hoon 2', email = 'hoon2@example.com' WHERE id = 1;Advertencia: Si se omite la sección WHERE, se modificarán todas las filas. Esta es una de las situaciones más peligrosas que pueden ocurrir por error.
-- ¡Esto cambiará el correo electrónico de todos los usuarios!
UPDATE users SET email = 'oops@example.com';DELETE — Eliminar datos
-- Eliminar una fila específica
DELETE FROM users WHERE id = 3;
-- Eliminar varias filas que cumplen la condición
DELETE FROM users WHERE created_at < '2025-01-01';Al igual que con UPDATE, si se ejecuta sin WHERE, se vacía toda la tabla. No es recuperable.
-- Eliminación total: no se puede deshacer
DELETE FROM users;Resumen de comandos
| Comando | Propósito | Riesgo |
|---|---|---|
CREATE TABLE | Definir la estructura de la tabla | Bajo |
INSERT | Agregar nuevos datos | Bajo |
SELECT | Consultar datos | Ninguno (solo lectura) |
UPDATE | Modificar datos existentes | ⚠️ WHERE obligatorio |
DELETE | Eliminar datos | ⚠️ WHERE obligatorio |
Al aprender SQL por primera vez, recuerda: SELECT es seguro, pero UPDATE/DELETE sin WHERE es un desastre.