En SQL, DDL (Data Definition Language) define la estructura de la base de datos, DML (Data Manipulation Language) consulta y modifica los datos, DCL (Data Control Language) gestiona los permisos y TCL (Transaction Control Language) controla las transacciones. Cada familia agrupa comandos como CREATE, SELECT, GRANT y COMMIT.
Última actualización: . Fuente: SERGAS / Xunta de Galicia / normativa oficial vigente.
Las cuatro familias en una tabla
| Familia | Nombre completo | Para qué sirve | Comandos típicos |
|---|---|---|---|
| DDL | Data Definition Language | Define la estructura de la base de datos | CREATE, ALTER, DROP, TRUNCATE, CREATE INDEX |
| DML | Data Manipulation Language | Consulta y modifica los datos | SELECT, INSERT, UPDATE, DELETE |
| DCL | Data Control Language | Controla los permisos de acceso | GRANT, REVOKE |
| TCL | Transaction Control Language | Gestiona las transacciones | BEGIN, COMMIT, ROLLBACK, SAVEPOINT |
Regla mnemotécnica: DDL es estructura, DML son datos, DCL son derechos (permisos) y TCL son transacciones.
Un ejemplo de cada familia
| Familia | Ejemplo | Qué hace |
|---|---|---|
| DDL | ALTER TABLE Pacientes ADD COLUMN Email VARCHAR(200); | Añade una columna a la tabla |
| DML | UPDATE Pacientes SET CodMedico = 99 WHERE NHC = 12345; | Cambia el médico asignado a un paciente |
| DCL | GRANT SELECT, INSERT ON Pacientes TO enfermera_user; | Concede permisos de lectura e inserción |
| TCL | COMMIT; | Confirma los cambios de la transacción en curso |
Errores típicos de examen
- TRUNCATE es DDL. Vacía la tabla entera y el temario lo clasifica con las sentencias de estructura. No se confunde con
DELETE, que es DML y puede llevar condiciónWHERE. - DROP no es DELETE.
DROP TABLEelimina la tabla completa con su definición (DDL);DELETEelimina filas (DML). - GRANT y REVOKE son DCL, no TCL. Tratan de permisos, no de transacciones.
- COMMIT y ROLLBACK son TCL.
COMMITconfirma y hace permanentes los cambios;ROLLBACKdeshace todo lo hecho desde el inicio de la transacción o hasta el últimoCOMMIT. - SAVEPOINT crea un punto intermedio:
ROLLBACK TO sp1deshace solo hasta ese punto, sin anular toda la transacción.
SELECT forma parte del DML. Si una pregunta ofrece DDL, DML, DCL y TCL como opciones, la respuesta correcta para una consulta es DML.Cómo identificar la familia en una pregunta
- Si el enunciado habla de crear, cambiar o eliminar tablas, índices o columnas, es DDL.
- Si habla de leer, añadir, cambiar o borrar filas, es DML.
- Si habla de conceder o retirar permisos a usuarios, es DCL.
- Si habla de confirmar o deshacer un conjunto de operaciones, es TCL.
Fíjate en el objeto sobre el que actúa la sentencia: la estructura, los datos, los permisos o la transacción. Ese objeto decide la familia, no el nombre del comando.
La transacción y las propiedades ACID
El TCL existe para que varias operaciones se traten como una unidad. Un ejemplo: insertar una cita y marcar la hora como ocupada en la agenda. Se abre la transacción con BEGIN TRANSACTION, se ejecutan ambas sentencias y se cierra con COMMIT. Si la segunda falla, ROLLBACK deja la base de datos como estaba. Esto es la atomicidad, una de las cuatro propiedades ACID (atomicidad, consistencia, aislamiento y durabilidad) que ofrecen las bases de datos relacionales. El resto de la teoría del tema (modelo entidad-relación, normalización, tipos de JOIN) está en el artículo sobre bases de datos relacionales y SQL.
Las fechas de las pruebas están en el calendario de la OPE SERGAS 2026.
❓ Preguntas frecuentes (FAQ)
¿Qué diferencia hay entre DDL y DML?
DDL cambia la estructura de la base de datos (crear, modificar o borrar tablas e índices) con comandos como CREATE, ALTER y DROP. DML trabaja con los datos que hay dentro de las tablas, con SELECT, INSERT, UPDATE y DELETE.
¿TRUNCATE es DDL o DML?
En el temario TRUNCATE se clasifica como DDL: vacía todos los datos de una tabla, pero se considera una operación sobre la estructura y no una sentencia de manipulación fila a fila como DELETE.
¿Qué comandos forman el DCL?
GRANT, que concede permisos a un usuario o rol, y REVOKE, que los retira. Por ejemplo, GRANT SELECT, INSERT ON Pacientes TO enfermera_user concede lectura e inserción sobre esa tabla.
¿Qué comandos forman el TCL?
COMMIT confirma los cambios de una transacción y los hace permanentes, ROLLBACK los deshace, SAVEPOINT marca un punto intermedio al que se puede volver con ROLLBACK TO, y BEGIN inicia la transacción.
¿Dónde se clasifica SELECT?
En el temario de TI, SELECT se incluye en el DML junto con INSERT, UPDATE y DELETE. Algunos manuales lo separan en una categoría propia de consulta, por lo que conviene fijarse en cómo lo plantea la pregunta.
📚 Sigue aprendiendo
🎯 ¿Preparas oposiciones del SERGAS?
Más de 13.000 preguntas tipo test con explicación, simulacros con penalización −0,25 y calculadora de baremo. 100% gratis.
Crear cuenta gratis →