Comandos SQL: DDL, DML, DCL, TCL y DQL – Guía Completa
El lenguaje SQL (Structured Query Language) es la piedra angular de la interacción con bases de datos relacionales. Con comandos SQL, podemos crear, modificar, eliminar y consultar datos, así como controlar permisos de acceso y gestionar transacciones. En este artículo, exploraremos los cinco tipos principales de comandos SQL y sus funciones clave:
DDL (Data Definition Language): Definición de la Estructura de la Base de Datos
El DDL se encarga de definir la estructura de la base de datos. Permite crear, modificar y eliminar objetos como tablas, vistas, índices y restricciones. Algunos de los comandos SQL más comunes dentro del DDL son:
- CREATE: Se utiliza para crear nuevos objetos en la base de datos. Por ejemplo,
CREATE TABLE
crea una nueva tabla,CREATE INDEX
crea un nuevo índice yCREATE VIEW
crea una nueva vista. - ALTER: Se utiliza para modificar la estructura de los objetos ya existentes.
ALTER TABLE
permite añadir, eliminar o modificar columnas, cambiar el tipo de datos de una columna, etc. - DROP: Se utiliza para eliminar objetos de la base de datos.
DROP TABLE
elimina una tabla,DROP INDEX
elimina un índice yDROP VIEW
elimina una vista. - TRUNCATE: Se utiliza para eliminar todos los datos de una tabla, pero no la propia tabla. Es más eficiente que
DELETE
para borrar todos los datos.
Ejemplo:
«`sql
— Crear una tabla llamada ‘usuarios’
CREATE TABLE usuarios (
id INT PRIMARY KEY,
nombre VARCHAR(255),
email VARCHAR(255)
);
— Modificar la tabla ‘usuarios’ para añadir una nueva columna ‘edad’
ALTER TABLE usuarios
ADD edad INT;
— Eliminar la tabla ‘usuarios’
DROP TABLE usuarios;
«`
DML (Data Manipulation Language): Manipulación de Datos
El DML se encarga de modificar los datos almacenados dentro de las tablas. Se utiliza para insertar, actualizar y eliminar filas. Los comandos SQL del DML incluyen:
- INSERT: Se utiliza para insertar nuevas filas en una tabla.
- UPDATE: Se utiliza para modificar los datos existentes en una tabla.
- DELETE: Se utiliza para eliminar filas de una tabla.
Ejemplo:
«`sql
— Insertar un nuevo usuario en la tabla ‘usuarios’
INSERT INTO usuarios (id, nombre, email, edad)
VALUES (1, ‘Juan Pérez’, ‘juan.perez@email.com’, 30);
— Actualizar el email del usuario con ID 1
UPDATE usuarios
SET email = ‘juan.perez@example.com’
WHERE id = 1;
— Eliminar el usuario con ID 2
DELETE FROM usuarios
WHERE id = 2;
«`
DCL (Data Control Language): Control de Acceso a la Base de Datos
El DCL se utiliza para controlar el acceso a la base de datos, permitiendo o denegando permisos a los usuarios. Los comandos SQL del DCL son:
- GRANT: Se utiliza para conceder permisos a los usuarios. Permite otorgar permisos para realizar determinadas operaciones, como insertar datos, actualizar datos, etc.
- REVOKE: Se utiliza para revocar los permisos otorgados a los usuarios.
Ejemplo:
«`sql
— Otorgar permisos de lectura y escritura a la tabla ‘usuarios’ al usuario ‘admin’
GRANT SELECT, INSERT, UPDATE, DELETE ON usuarios TO admin;
— Revocar el permiso de escritura a la tabla ‘usuarios’ al usuario ‘admin’
REVOKE INSERT, UPDATE, DELETE ON usuarios FROM admin;
«`
TCL (Transaction Control Language): Control de Transacciones
El TCL se utiliza para gestionar las transacciones dentro de la base de datos. Las transacciones permiten agrupar una serie de operaciones como si fueran una sola unidad de trabajo. Los comandos SQL del TCL son:
- COMMIT: Se utiliza para guardar los cambios realizados en la base de datos.
- ROLLBACK: Se utiliza para deshacer los cambios realizados en la base de datos.
- SAVEPOINT: Se utiliza para crear un punto de control dentro de una transacción. Permite restaurar la base de datos a un estado específico en caso de error.
Ejemplo:
«`sql
— Iniciar una transacción
START TRANSACTION;
— Insertar un nuevo usuario
INSERT INTO usuarios (id, nombre, email) VALUES (3, ‘Ana García’, ‘ana.garcia@email.com’);
— Actualizar el email del usuario con ID 1
UPDATE usuarios SET email = ‘juan.perez@newmail.com’ WHERE id = 1;
— Guardar los cambios
COMMIT;
— Deshacer los cambios
ROLLBACK;
«`
DQL (Data Query Language): Consultas de Datos
El DQL es el único tipo de comando SQL que se utiliza para extraer datos de la base de datos. El único comando SQL del DQL es SELECT
.
- SELECT: Se utiliza para seleccionar datos específicos de las tablas.
SELECT
permite especificar las columnas que se desean seleccionar, las filas que se desean obtener y las condiciones de filtro que se aplican.
Ejemplo:
«`sql
— Seleccionar todos los usuarios de la tabla ‘usuarios’
SELECT * FROM usuarios;
— Seleccionar el nombre y el email de los usuarios con edad mayor de 25
SELECT nombre, email FROM usuarios WHERE edad > 25;
«`
Conclusión
Los cinco tipos de comandos SQL (DDL, DML, DCL, TCL y DQL) son esenciales para la gestión de bases de datos. Comprensión profunda de estos comandos permite crear y administrar bases de datos de forma eficiente y segura, realizando operaciones de creación, modificación, consulta y control de acceso a los datos. La flexibilidad de SQL lo convierte en un lenguaje indispensable en el desarrollo de aplicaciones que requieren interacción con datos.