Comandos DDL en SQL
Aprende sobre los comandos de Data Definition Language (DDL) en SQL para definir y modificar la estructura de la base de datos.
Cristian Escalante
Última actualización: 10 de mayo de 2025
Comandos DDL en SQL
El Lenguaje de Definición de Datos (DDL - Data Definition Language) es un subconjunto de SQL utilizado para definir y modificar la estructura de los objetos en una base de datos. Los comandos DDL no manipulan los datos en sí, sino la estructura que contiene esos datos.
CREATE
El comando CREATE se utiliza para crear nuevos objetos en la base de datos. Los objetos más comunes que se crean son tablas, vistas, índices, esquemas y bases de datos.
CREATE DATABASE
CREATE DATABASE nombre_base_datos;
CREATE TABLE
CREATE TABLE nombre_tabla (
columna1 tipo_dato [restricciones],
columna2 tipo_dato [restricciones],
...
[restricciones_tabla]
);
CREATE INDEX
CREATE [UNIQUE] INDEX nombre_indice
ON nombre_tabla (columna1 [ASC|DESC], columna2 [ASC|DESC], ...);
CREATE VIEW
CREATE VIEW nombre_vista AS
SELECT columna1, columna2, ...
FROM nombre_tabla
WHERE condicion;
ALTER
El comando ALTER se utiliza para modificar la estructura de objetos existentes en la base de datos.
ALTER TABLE
Para añadir una columna:
ALTER TABLE nombre_tabla
ADD columna tipo_dato [restricciones];
Para modificar una columna:
ALTER TABLE nombre_tabla
MODIFY columna nuevo_tipo_dato [restricciones];
Para eliminar una columna:
ALTER TABLE nombre_tabla
DROP COLUMN columna;
Para añadir una restricción:
ALTER TABLE nombre_tabla
ADD CONSTRAINT nombre_restriccion tipo_restriccion (columna);
Para eliminar una restricción:
ALTER TABLE nombre_tabla
DROP CONSTRAINT nombre_restriccion;
ALTER DATABASE
ALTER DATABASE nombre_base_datos
SET parametro valor;
DROP
El comando DROP se utiliza para eliminar objetos existentes de la base de datos.
DROP TABLE
DROP TABLE nombre_tabla;
DROP DATABASE
DROP DATABASE nombre_base_datos;
DROP VIEW
DROP VIEW nombre_vista;
DROP INDEX
DROP INDEX nombre_indice ON nombre_tabla;
TRUNCATE
El comando TRUNCATE se utiliza para eliminar todos los registros de una tabla, pero manteniendo la estructura de la tabla intacta. Es más rápido que DELETE y no se puede deshacer fácilmente.
TRUNCATE TABLE nombre_tabla;
Ejemplos prácticos
Creación de una base de datos para una biblioteca
-- Crear la base de datos
CREATE DATABASE biblioteca;
-- Usar la base de datos
USE biblioteca;
-- Crear tabla de autores
CREATE TABLE autores (
autor_id INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(50) NOT NULL,
apellido VARCHAR(50) NOT NULL,
fecha_nacimiento DATE,
nacionalidad VARCHAR(50)
);
-- Crear tabla de libros
CREATE TABLE libros (
libro_id INT PRIMARY KEY AUTO_INCREMENT,
titulo VARCHAR(100) NOT NULL,
autor_id INT,
anio_publicacion INT,
editorial VARCHAR(50),
genero VARCHAR(30),
isbn VARCHAR(20) UNIQUE,
FOREIGN KEY (autor_id) REFERENCES autores(autor_id)
);
-- Crear índice para búsquedas por título
CREATE INDEX idx_titulo ON libros(titulo);
-- Crear vista para mostrar libros con sus autores
CREATE VIEW vista_libros_autores AS
SELECT l.libro_id, l.titulo, l.anio_publicacion, l.genero,
CONCAT(a.nombre, ' ', a.apellido) AS autor
FROM libros l
JOIN autores a ON l.autor_id = a.autor_id;
-- Modificar tabla de libros para añadir una columna
ALTER TABLE libros
ADD disponible BOOLEAN DEFAULT TRUE;
-- Modificar el tipo de dato de una columna
ALTER TABLE autores
MODIFY nacionalidad VARCHAR(100);
-- Eliminar una vista
DROP VIEW vista_libros_autores;
-- Truncar la tabla de libros (eliminar todos los registros)
TRUNCATE TABLE libros;
-- Eliminar una tabla
DROP TABLE libros;
-- Eliminar la base de datos
DROP DATABASE biblioteca;
Consideraciones importantes
- Transacciones y DDL: En algunos SGBD, los comandos DDL no se pueden revertir mediante ROLLBACK, ya que automáticamente realizan un COMMIT.
- Permisos: Para ejecutar comandos DDL, normalmente se requieren permisos administrativos o de propietario.
- Impacto: Los comandos DDL pueden afectar el rendimiento de la base de datos, especialmente en entornos de producción.
- Planificación: Antes de ejecutar comandos DDL en una base de datos en producción, es importante planificar y probar en un entorno de desarrollo.
- Respaldo: Siempre es recomendable hacer un respaldo antes de realizar cambios estructurales importantes con DDL.