Guía TAI · Bloque III · Tema 17 · Actualizada a julio de 2026
SQL es apuesta segura en el TAI: ha caído en 2023, 2024 y 2026, en el cuestionario y en los supuestos prácticos. Y casi siempre pregunta lo mismo: a qué familia pertenece cada comando, la diferencia entre DROP, DELETE y TRUNCATE, y cómo se escribe un JOIN, un GROUP BY o un trigger. Aquí tienes ese núcleo ordenado, con el esquema de memorización y tres preguntas reales resueltas.
Los sublenguajes de SQL en 30 segundos
La pregunta más repetida del tema: ¿a qué familia pertenece este comando? Esta tabla la responde entera.
| Familia | Para qué sirve y sus comandos |
|---|---|
| DDL (Definition) | Define la estructura: CREATE, ALTER, DROP, TRUNCATE, RENAME |
| DML (Manipulation) | Manipula los datos: INSERT, UPDATE, DELETE (y SELECT, ver el matiz abajo) |
| DQL (Query) | La consulta: SELECT |
| DCL (Control) | Permisos: GRANT, REVOKE, DENY (este último, de Transact-SQL) |
| TCL (Transaction) | Transacciones: COMMIT, ROLLBACK, SAVEPOINT |
El matiz que vale puntos: académicamente SELECT es DQL, pero el tribunal lo ha dado por bueno como DML — tenlo en cuenta al descartar opciones.
Los puntos que más caen
DROP contra DELETE contra TRUNCATE (el clásico eterno)
- DROP: borra la estructura y los datos. Es DDL y no admite WHERE.
- DELETE: borra filas y conserva la tabla. Es DML y sí admite WHERE.
- TRUNCATE: vacía la tabla entera. Es DDL, sin WHERE y normalmente no reversible.
Y las trampas de relleno: REMOVE y ERASE no existen en SQL.
La SELECT por dentro: orden y filtros
El orden real de ejecución es FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. De ahí sale la regla que preguntan: WHERE filtra filas, HAVING filtra grupos. En el INNER JOIN solo salen las coincidencias y su condición va en el ON. Y en el GROUP BY, todo lo no agregado del SELECT debe estar agrupado — y ojo: SUM(*) no existe (eso es de COUNT).
Transacciones: deshacer bien
ROLLBACK deshace desde el inicio de la transacción o desde un SAVEPOINT (que solo marca el punto de retorno, no deshace nada por sí mismo). «RETURNBACK» es otro comando inventado de las opciones trampa.
Procedimientos y disparadores
- El procedimiento almacenado vive precompilado en la base de datos; la función además devuelve un valor.
- Extensiones procedimentales: PL/SQL es de Oracle, Transact-SQL de SQL Server — el distractor favorito es cruzarlas.
- Triggers: se disparan con INSERT, UPDATE o DELETE, en BEFORE o AFTER, y el orden ANSI es
CREATE TRIGGER nombre BEFORE|AFTER evento ON tabla. Si el trigger falla, se cancela automáticamente la operación que lo disparó.
Esquema de memorización
Los datos que se repiten convocatoria tras convocatoria.
| Dato | Valor |
|---|---|
| DDL | CREATE · ALTER · DROP · TRUNCATE (estructura) |
| DML | INSERT · UPDATE · DELETE (+ SELECT para el tribunal) |
| DCL | GRANT · REVOKE · DENY |
| TCL | COMMIT · ROLLBACK · SAVEPOINT |
| DROP | Estructura + datos · DDL · sin WHERE |
| DELETE | Filas, conserva la tabla · DML · con WHERE |
| TRUNCATE | Vacía la tabla · DDL · sin WHERE · no reversible |
| Orden de ejecución | FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY |
| WHERE / HAVING | Filtra filas / filtra grupos |
| INNER JOIN | Solo coincidencias · condición en ON |
| GROUP BY | Lo no agregado del SELECT, agrupado · SUM(*) no existe |
| ROLLBACK / SAVEPOINT | Deshace / solo marca el punto de retorno |
| PL/SQL / T-SQL | Oracle / SQL Server |
| Trigger (ANSI) | CREATE TRIGGER nombre BEFORE|AFTER evento ON tabla |
| Error en trigger | Cancela automáticamente la operación que lo disparó |
Tres preguntas reales de examen
De los exámenes oficiales TAI, con la respuesta de la plantilla del INAP. En los apuntes completos hay once de este tema, resueltas y razonadas.
En SQL, ¿cómo se pueden eliminar los datos en una tabla, pero no la propia definición de la tabla?
- DROP TABLE
- DELETE
- REMOVE
- ERASE
Ver solución
Referente al comando DROP de SQL, es correcto decir:
- Es un comando DCL.
- Puede ser ejecutado por disparadores (triggers).
- Se utiliza para eliminar la estructura de una tabla junto con cualquier dato almacenado en ella.
- Utiliza WHERE para condiciones de filtrado.
Ver solución
En una base de datos relacional existe una tabla «Departamento». Si lo que se quiere validar es un cambio antes del evento, indique cuál sería una forma válida de comenzar la creación de un Trigger en el estándar ANSI SQL:
- CREATE TRIGGER Validar_cambio BEFORE UPDATE OF TABLE Departamento
- CREATE NEW TRIGGER Validar_cambio OF Departamento BEFORE UPDATE
- CREATE TRIGGER Validar_cambio ON TABLE Departamento BEFORE UPDATE
- CREATE TRIGGER Validar_cambio BEFORE UPDATE ON Departamento
Ver solución
CREATE TRIGGER nombre BEFORE|AFTER evento ON tabla. Sobran «TABLE» (a y c) y «NEW» (b), y el momento va antes del ON.Preguntas frecuentes
¿Qué son DDL, DML, DCL y TCL?
Las familias de comandos de SQL: DDL define la estructura (CREATE, ALTER, DROP, TRUNCATE), DML manipula los datos (INSERT, UPDATE, DELETE), DCL gestiona permisos (GRANT, REVOKE, DENY) y TCL las transacciones (COMMIT, ROLLBACK, SAVEPOINT).
¿Qué diferencia hay entre DROP, DELETE y TRUNCATE?
DROP borra la tabla entera (estructura y datos, DDL); DELETE borra filas y conserva la tabla (DML, admite WHERE); TRUNCATE vacía la tabla (DDL, sin WHERE y normalmente irreversible).
¿PL/SQL y Transact-SQL son lo mismo?
No: son las extensiones procedimentales de cada fabricante. PL/SQL es de Oracle y Transact-SQL (T-SQL) de Microsoft SQL Server. Cruzarlas es el distractor favorito del tribunal.
¿Cae mucho SQL en el examen del TAI?
Muchísimo: hay preguntas de SQL en 2023, 2024 y 2026, tanto en el cuestionario como en los supuestos prácticos (JOIN y GROUP BY sobre esquemas reales). Es de los temas más rentables por hora de estudio del Bloque III.