Selecciona una palabra clave
CREATE
Data Definition Language — Creación de objetos
Crea nuevos objetos en la base de datos: tablas, vistas, índices, procedimientos almacenados, bases de datos o esquemas. Es la instrucción fundamental para definir la estructura de los datos.
CREATE TABLE nombre_tabla ( columna1 tipo_dato CONSTRAINT, columna2 tipo_dato, ... );
- Si la tabla ya existe se lanzará un error; usa
CREATE TABLE IF NOT EXISTSpara evitarlo. - Se pueden crear bases de datos completas con
CREATE DATABASE nombre. - Las vistas se crean con
CREATE VIEW nombre AS SELECT ....
ALTER
Data Definition Language — Modificación de estructura
Modifica la estructura de un objeto existente: agrega, elimina o cambia columnas; agrega o elimina restricciones; renombra columnas.
ALTER TABLE tabla ADD COLUMN col tipo -- agregar DROP COLUMN col -- eliminar MODIFY COLUMN col nuevo_tipo -- cambiar tipo RENAME COLUMN viejo TO nuevo;
- Al eliminar una columna con datos, la información se pierde permanentemente.
- Cambiar el tipo de una columna con datos puede causar errores de conversión.
DROP
Data Definition Language — Eliminación de objetos
Elimina de forma permanente e irreversible un objeto de la base de datos: tablas, vistas, índices, bases de datos o procedimientos.
DROP TABLE nombre_tabla; DROP DATABASE nombre_bd; DROP VIEW nombre_vista; DROP INDEX nombre_indice ON tabla;
- ⚠ Operación irreversible: no hay UNDO. Haz un backup antes.
- Usa
IF EXISTSpara evitar errores si el objeto no existe. - Las tablas con FOREIGN KEY activas no pueden eliminarse sin antes borrar o desactivar las restricciones.
TRUNCATE
Data Definition Language — Vaciado de tabla
Elimina todos los registros de una tabla de forma rápida, sin activar triggers de DELETE y restableciendo los contadores AUTO_INCREMENT. La estructura de la tabla se mantiene intacta.
TRUNCATE TABLE nombre_tabla;
- Más rápido que DELETE para grandes volúmenes de datos.
- No se puede usar en tablas con FOREIGN KEY referenciadas.
- En MySQL, no activa triggers; en PostgreSQL sí puede activarlos.
RENAME
Data Definition Language — Renombrar objetos
Cambia el nombre de una tabla u objeto de la base de datos sin alterar su contenido ni estructura.
-- MySQL RENAME TABLE nombre_viejo TO nombre_nuevo; -- Oracle / PostgreSQL ALTER TABLE nombre_viejo RENAME TO nombre_nuevo;
SELECT
Data Query Language — Consulta de datos
El comando más usado en SQL. Recupera datos de una o más tablas y puede combinarse con filtros, ordenamientos, funciones de agregación y subconsultas.
SELECT columna1, columna2, ... FROM tabla WHERE condición GROUP BY columna HAVING condición_grupo ORDER BY columna ASC|DESC LIMIT n;
- Usa
SELECT *solo en desarrollo; en producción especifica columnas. SELECT DISTINCTelimina filas duplicadas en el resultado.- El orden de las cláusulas es estricto: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → LIMIT.
WHERE
Data Query Language — Filtrado de filas
Filtra las filas devueltas por SELECT, UPDATE o DELETE según una condición booleana. Soporta operadores de comparación, lógicos, BETWEEN, IN, LIKE y NULL.
= != < > <= >= -- comparación AND OR NOT -- lógicos BETWEEN val1 AND val2 -- rango IN (val1, val2, ...) -- lista LIKE '%patron%' -- patrón texto IS NULL / IS NOT NULL -- nulos
JOIN
Data Query Language — Combinación de tablas
Combina filas de dos o más tablas basándose en una condición de relación (normalmente una clave foránea). Existen varios tipos: INNER, LEFT, RIGHT y FULL OUTER.
INNER JOIN -- solo filas que coinciden en ambas LEFT JOIN -- todas de la izquierda + coincidencias RIGHT JOIN -- todas de la derecha + coincidencias FULL OUTER JOIN -- todas de ambas tablas
GROUP BY
Data Query Language — Agrupación de resultados
Agrupa filas con los mismos valores en una o más columnas. Permite aplicar funciones de agregación (COUNT, SUM, AVG, MAX, MIN) a cada grupo.
ORDER BY
Data Query Language — Ordenamiento de resultados
Ordena el conjunto de resultados en forma ascendente (ASC) o descendente (DESC). Puede ordenar por múltiples columnas con prioridades distintas.
HAVING
Data Query Language — Filtrado de grupos
Funciona igual que WHERE pero se aplica después de GROUP BY, sobre resultados de funciones de agregación. WHERE filtra filas individuales; HAVING filtra grupos.
SUBQUERY
Data Query Language — Consulta anidada
Una consulta SELECT dentro de otra consulta (en WHERE, FROM o SELECT). Permite resolver problemas complejos dividiendo la lógica en pasos.
GRANT
Data Control Language — Concesión de permisos
Otorga privilegios de acceso o manipulación sobre objetos de la base de datos a usuarios o roles. Es la forma principal de gestionar la seguridad en SQL.
GRANT privilegio ON objeto TO usuario | rol [WITH GRANT OPTION];
SELECT, INSERT, UPDATE, DELETE— operaciones sobre datos.CREATE, DROP, ALTER— gestión de estructura.ALL PRIVILEGES— todos los permisos disponibles.WITH GRANT OPTION— permite que el usuario ceda sus permisos a otros.
REVOKE
Data Control Language — Revocación de permisos
Retira privilegios previamente concedidos mediante GRANT. Puede revocar permisos específicos o todos los permisos de un usuario sobre un objeto.
DENY
Data Control Language — Denegación de permisos
Niega explícitamente un permiso a un usuario o rol, incluso si ese permiso fue heredado por un rol. Disponible principalmente en SQL Server. Tiene precedencia sobre GRANT.
INSERT
Data Manipulation Language — Inserción de datos
Agrega una o más filas nuevas a una tabla. Puede insertar valores literales, resultados de un SELECT, o múltiples filas en una sola instrucción.
INSERT INTO tabla (col1, col2) VALUES (val1, val2); -- Múltiples filas INSERT INTO tabla (col1, col2) VALUES (a1,b1), (a2,b2);
UPDATE
Data Manipulation Language — Actualización de datos
Modifica los valores de una o más columnas en filas existentes de una tabla. Siempre debe usarse con WHERE para evitar actualizar toda la tabla.
- ⚠ Sin WHERE, se actualizan TODAS las filas de la tabla.
- Usa
SELECTprimero con el mismo WHERE para verificar qué filas se van a afectar.
DELETE
Data Manipulation Language — Eliminación de filas
Elimina una o más filas de una tabla. A diferencia de TRUNCATE, activa triggers, permite usar WHERE para eliminar selectivamente y puede revertirse con ROLLBACK.
MERGE
Data Manipulation Language — Sincronización UPSERT
Combina INSERT y UPDATE en una sola operación: si el registro existe lo actualiza; si no existe lo inserta. Ideal para sincronización de datos entre tablas.
COMMIT
Data Manipulation Language — Confirmación de transacción
Confirma permanentemente todos los cambios realizados desde el último COMMIT o ROLLBACK. Una vez ejecutado, los cambios no pueden revertirse.
ROLLBACK
Data Manipulation Language — Reversión de transacción
Deshace todos los cambios realizados desde el último COMMIT o SAVEPOINT. Es el mecanismo de seguridad de las transacciones SQL.
- Solo funciona si la transacción está activa (no auto-commit).
- Los DDL (CREATE, DROP, ALTER) no pueden revertirse en la mayoría de los motores.