Comandos SQL: DQL, DDL, DML, DCL y TCL con ejemplos
⚡ Resumen inteligente
Los comandos SQL se agrupan en cinco sublenguajes que administran una base de datos relacional. DDL define la estructura, DML modifica los datos, DCL controla el acceso, TCL administra las transacciones y DQL recupera los datos, cada uno con su propio conjunto de instrucciones y sintaxis.

¿Qué es SQL?
SQL es un lenguaje de base de datos diseñado para la recuperación y gestión de datos en una base de datos relacional.
SQL es el lenguaje estándar para la gestión de bases de datos. Todos los sistemas RDBMS como MySQL, Acceso MS, OracleSybase, PostgreSQL y SQL Server utilizan SQL como lenguaje de base de datos estándar. El lenguaje de programación SQL emplea diversos comandos para diferentes operaciones. Aprenderemos sobre los comandos DCL, TCL, DQL, DDL y DML en SQL con ejemplos.
¿Por qué usar SQL?
Estas son algunas razones importantes para usar SQL:
- Ayuda a los usuarios a acceder a los datos en el sistema RDBMS.
- Te ayuda a describir los datos.
- Le permite definir los datos en una base de datos y manipular esos datos específicos.
- Mediante comandos SQL, puedes crear y eliminar bases de datos y tablas.
- SQL permite utilizar funciones en una base de datos, así como crear vistas y procedimientos almacenados.
- Puede establecer permisos sobre tablas, procedimientos y vistas.
Breve historia de SQL
Aquí hay lugares emblemáticos importantes de la historia de SQL:
- 1970 – El Dr. Edgar F. “Ted” Codd describió un modelo relacional para bases de datos.
- 1974 – Apareció el lenguaje de consulta estructurado, originalmente llamado SEQUEL en IBM.
- 1979 - Oracle lanzó la primera base de datos basada en SQL disponible comercialmente, basada en IBMPrototipo de investigación del Sistema R.
- 1986 – ANSI publicó el primer estándar SQL, SQL-86.
- 1989 – SQL-89 llegó como la primera revisión del estándar.
- 1992 – SQL-92 (SQL2) se convirtió en la principal norma de referencia que aún utilizan la mayoría de las bases de datos en la actualidad.
- 1999 – Se lanzó SQL:1999 (SQL3) con características como disparadores, consultas recursivas y orientación a objetos.
- 2003 – SQL:2003 añadió funciones de ventana, generadores de secuencias y características relacionadas con XML.
- 2006 – SQL:2006 añadió compatibilidad con el lenguaje de consulta XML (XQuery).
- 2008 – SQL:2008 introdujo la instrucción TRUNCATE y los disparadores INSTEAD OF.
- 2011 – SQL:2011 mejoró la compatibilidad con bases de datos temporales.
- 2016 – SQL:2016 agregó soporte para JSON y coincidencia de patrones de filas (MATCH_RECOGNIZE).
- 2019 – SQL/MDA (Parte 15) añadió compatibilidad con matrices multidimensionales al estándar.
- 2023 – SQL:2023 añadió un tipo de datos JSON nativo y consultas de gráficos de propiedades (SQL/PGQ).
- 2024 – GQL, el primer nuevo lenguaje de bases de datos ISO desde SQL, se publicó como estándar complementario para consultas de grafos.
- 2026 – SQL:2023 sigue siendo el estándar actual, y la próxima revisión está en desarrollo en ISO/IEC.
Tipos de comandos SQL
Aquí hay cinco tipos de comandos SQL ampliamente utilizados:
- Lenguaje de definición de datos (DDL)
- Lenguaje de manipulación de datos (DML)
- Lenguaje de control de datos (DCL)
- Lenguaje de control de transacciones (TCL)
- Lenguaje de consulta de datos (DQL)

La tabla que aparece a continuación resume las cinco categorías antes de que cada una se trate en detalle.
| Categoría | Propósito | Comandos principales |
|---|---|---|
| DDL | Definir la estructura | CREAR, ELIMINAR, MODIFICAR, TRUNCAR |
| DML | Modificar datos | INSERTAR, ACTUALIZAR, ELIMINAR |
| DCL | Control de acceso | CONCEDER, REVOCAR |
| TCL | Administrar transacciones | CONFIRMAR, REVERTIR, GUARDAR PUNTO |
| DQL | Recuperar datos | SELECT |
¿Qué es DDL?
El lenguaje de definición de datos (DDL) ayuda a definir la estructura o el esquema de la base de datos. Aprendamos sobre los comandos DDL y su sintaxis. Los principales comandos DDL en SQL son CREATE, DROP, ALTER y TRUNCATE.
CREAR
La instrucción CREATE se utiliza para definir la estructura o el esquema de la base de datos:
Sintaxis:
CREATE TABLE TABLE_NAME (COLUMN_NAME DATATYPES[,....]);
Por ejemplo:
Create database university; Create table students; Create view for_students;
DROP
El comando DROP elimina tablas y bases de datos del sistema de gestión de bases de datos relacionales (RDBMS).
Sintaxis:
DROP TABLE ;
Por ejemplo:
Drop object_type object_name; Drop database university; Drop table student;
ALTER
El comando ALTER permite modificar la estructura de la base de datos.
Sintaxis: Para agregar una nueva columna a la tabla:
ALTER TABLE table_name ADD column_name COLUMN-definition;
Para modificar una columna existente en la tabla:
ALTER TABLE MODIFY(COLUMN DEFINITION....);
Por ejemplo:
Alter table guru99 add subject varchar;
TRUNCAR
Este comando se utiliza para eliminar todas las filas de la tabla y liberar el espacio que contiene la tabla.
Sintaxis:
TRUNCATE TABLE table_name;
Ejemplo:
TRUNCATE table students;
¿Qué es el lenguaje de manipulación de datos?
El lenguaje de manipulación de datos (DML) permite modificar la instancia de la base de datos insertando, modificando y eliminando sus datos. Es responsable de realizar todo tipo de modificaciones de datos en una base de datos. Los comandos DML importantes en SQL son:
- INSERT
- ACTUALIZAR
- BORRAR
INSERT
Esta instrucción se utiliza para insertar datos en las filas de una tabla.
Sintaxis:
INSERT INTO TABLE_NAME (col1, col2, col3,.... col N) VALUES (value1, value2, value3, .... valueN); Or INSERT INTO TABLE_NAME VALUES (value1, value2, value3, .... valueN);
Por ejemplo:
INSERT INTO students (RollNo, FIrstName, LastName) VALUES ('60', 'Tom', Erichsen');
ACTUALIZAR
Este comando se utiliza para actualizar o modificar el valor de una columna de la tabla.
Sintaxis:
UPDATE table_name SET [column_name1= value1,...column_nameN = valueN] [WHERE CONDITION]
Por ejemplo:
UPDATE students SET FirstName = 'Jhon', LastName= 'Wick' WHERE StudID = 3;
BORRAR
Este comando se utiliza para eliminar una o más filas de una tabla.
Sintaxis:
DELETE FROM table_name [WHERE condition];
Por ejemplo:
DELETE FROM students WHERE FirstName = 'Jhon';
¿Qué es DCL?
El DCL (Lenguaje de Control de Datos) incluye comandos como GRANT y REVOKE, útiles para otorgar derechos y permisos. Otros comandos controlan los parámetros del sistema de base de datos.
Grant
Este comando se utiliza para otorgar a un usuario privilegios de acceso a una base de datos.
Sintaxis:
GRANT SELECT, UPDATE ON MY_TABLE TO SOME_USER, ANOTHER_USER;
Por ejemplo:
GRANT SELECT ON Users TO'Tom'@'localhost;
Revbien
Este comando es útil para revocar los permisos del usuario.
Sintaxis:
REVOKE privilege_nameON object_nameFROM {user_name |PUBLIC |role_name}
Por ejemplo:
REVOKE SELECT, UPDATE ON student FROM BCA, MCA;
¿Qué es TCL?
El lenguaje de control de transacciones, o comandos TCL, se ocupa de las transacciones dentro de la base de datos. Trabajan directamente con los estados descritos en Gestión de transacciones.
COMPROMÉTASE
Este comando se utiliza para guardar todas las transacciones en la base de datos.
Sintaxis:
Commit;
Por ejemplo:
DELETE FROM Students WHERE RollNo =25; COMMIT;
Rollback
El comando Rollback permite deshacer las transacciones que aún no se han guardado en la base de datos.
Sintaxis:
ROLLBACK;
Ejemplo:
DELETE FROM Students WHERE RollNo =25;
PUNTO DE GUARDADO
Este comando te ayuda a establecer un punto de guardado dentro de una transacción.
Sintaxis:
SAVEPOINT SAVEPOINT_NAME;
Ejemplo:
SAVEPOINT RollNo;
¿Qué es DQL?
El lenguaje de consulta de datos (DQL) se utiliza para obtener datos de la base de datos. Utiliza un único comando: SELECT.
SELECT
Este comando le ayuda a seleccionar los atributos en función de la condición descrita por la cláusula WHERE.
Sintaxis:
SELECT expressions FROM TABLES WHERE conditions;
Por ejemplo:
SELECT FirstName FROM Student WHERE RollNo > 15;
ELIMINAR vs TRUNCAR vs ELIMINAR
Estos tres comandos eliminan datos, pero difieren en qué eliminan y en si la acción se puede revertir. Confundirlos es un error común entre los principiantes.
| Aspecto | BORRAR | TRUNCAR | DROP |
|---|---|---|---|
| Categoría | DML | DDL | DDL |
| Elimina | Filas seleccionadas | Todas las filas | Toda la mesa |
| Dónde cláusula | Permitido | No se permiten | No es aplicable |
| Rollback | Posibles | Usualmente no | Imposible |
| Estructura mantenida | Sí: | Sí: | No |
En resumen, utilice DELETE para eliminar filas específicas, TRUNCATE para vaciar una tabla rápidamente y DROP para descartar la tabla por completo.
