El Lenguaje de Descripción de Datos (DDL, por sus siglas en inglés) es un subconjunto del lenguaje SQL (Structured Query Language) utilizado principalmente para definir y modificar la estructura de las bases de datos y sus objetos, como tablas, índices, vistas y esquemas. A través de comandos DDL, los administradores y desarrolladores de bases de datos pueden crear, alterar y eliminar objetos en la base de datos sin manipular los datos almacenados en ellos.
Los comandos DDL más comunes son:
CREATE: Se utiliza para crear nuevos objetos en la base de datos, como tablas, vistas, índices o esquemas. Por ejemplo:
CREATE TABLE empleados (
id INT PRIMARY KEY,
nombre VARCHAR(100),
puesto VARCHAR(50)
);
ALTER: Permite modificar la estructura de un objeto existente, como agregar o eliminar columnas, cambiar tipos de datos o actualizar restricciones. Por ejemplo:
ALTER TABLE empleados ADD salario DECIMAL(10, 2);
DROP: Se utiliza para eliminar objetos de la base de datos, como tablas o vistas. Esta operación es irreversible y elimina también los datos almacenados en el objeto. Ejemplo:
DROP TABLE empleados;
TRUNCATE: Aunque se considera un comando DDL, TRUNCATE
se utiliza para eliminar rápidamente todos los registros de una tabla sin afectar su estructura ni los índices. Es más eficiente que DELETE
porque no genera logs para cada fila eliminada:
TRUNCATE TABLE empleados;
RENAME: Permite cambiar el nombre de un objeto en la base de datos, como una tabla o una vista.
El DDL es esencial en la etapa de diseño de una base de datos, ya que permite definir su arquitectura y estructura para soportar las necesidades de la aplicación o sistema.
Crear el DDL del siguietne esquema E/R:
DROP TABLE if exits productos ;
DROP TABLE cajas;
create TABLE cajas(
id INT AUTO_INCREMENT,
descripcion VARCHAR(50),
alto DOUBLE(6,2),
ancho DOUBLE(6,2),
profundo DOUBLE(6,2),
PRIMARY KEY(id)
);
create TABLE productos(
id INT AUTO_INCREMENT,
nombre VARCHAR(50),
peso DOUBLE(6,2),
fk_caja INT NOT null,
PRIMARY KEY(id),
CONSTRAINT cons_fk_caja_cajas
FOREIGN KEY (fk_caja)
REFERENCES cajas(id)
);