SQL-DDL
Lenguaje de definición de datos
Acerca de:
Los comandos DDL (Data Definition Language) en SQL son esenciales para definir y modificar la
estructura de las bases de datos. Estos comandos permiten crear, alterar y eliminar tablas,
índices y otros objetos dentro de la base de datos.
ING. JOSE MANUEL SANTOS SANCHEZ
santosjose@[Link]
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
TABLA DE CONTENIDO
INTRODUCCIÓN .................................................................................................................... 3
¿Qué es SQL? ....................................................................................................................... 5
Importancia de los comandos DDL en la gestión de bases de datos ................................... 5
Definición de DDL ................................................................................................................. 6
DDL: Data Definition Language ........................................................................................ 6
Diferencia entre DDL, DML y DCL .................................................................................... 6
CREATE ................................................................................................................................. 7
Definición y uso ................................................................................................................ 7
Creación de tablas ............................................................................................................ 8
Creación de índices .......................................................................................................... 8
Creación de vistas ................................................................................................................ 8
ALTER .................................................................................................................................... 9
Definición y uso ............................................................................................................ 9
Modificación de tablas existentes................................................................................ 9
DROP .................................................................................................................................. 10
Definición y uso .......................................................................................................... 10
Eliminación de tablas ................................................................................................. 10
Eliminación de índices.................................................................................................... 10
Eliminación de vistas ...................................................................................................... 11
TRUNCATE .......................................................................................................................... 11
Definición y uso .............................................................................................................. 11
Diferencia entre TRUNCATE y DELETE ............................................................................ 11
COMMENT.......................................................................................................................... 12
1
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Definición y uso .............................................................................................................. 12
Agregar comentarios a tablas y columnas ..................................................................... 13
RENAME ............................................................................................................................. 13
Definición y uso .............................................................................................................. 13
Cambiar el nombre de tablas y columnas ..................................................................... 14
Ejercicio en clase ................................................................................................................ 15
Esquema de la base de datos ......................................................................................... 15
Script de creación de la base de datos .......................................................................... 16
Operaciones de modificación a llevar a cabo ................................................................ 16
BIBLIOGRAFIA ..................................................................................................................... 18
2
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
INTRODUCCIÓN
Los comandos DDL (Data Definition Language) en SQL representan una parte
fundamental del lenguaje de consulta estructurado, proporcionando las herramientas
necesarias para definir y modificar la estructura de las bases de datos. Estos comandos
abarcan operaciones como la creación de tablas, la definición de índices y la
configuración de restricciones, entre otros. A través de ellos, los administradores y
desarrolladores pueden establecer la arquitectura de la base de datos, garantizando la
organización y la integridad de los datos almacenados.
A medida que las bases de datos crecen y evolucionan, la necesidad de adaptar su
estructura se vuelve imperativa. Aquí es donde los comandos DDL demuestran su valor,
permitiendo realizar cambios estructurales sin afectar los datos existentes. Ya sea para
añadir una nueva columna, cambiar el tipo de dato de un campo o establecer relaciones
entre tablas, los comandos DDL ofrecen la flexibilidad y precisión requeridas para estas
tareas.
3
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Es esencial para cualquier profesional que trabaje con bases de datos tener un
conocimiento sólido de los comandos DDL. No solo facilitan la gestión y adaptación de la
base de datos, sino que también garantizan que se mantenga la integridad y coherencia
de la información, aspectos cruciales para el correcto funcionamiento de cualquier
sistema de información.
4
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Comandos DDL de SQL
¿Qué es SQL?
SQL, que significa "Structured Query Language" (Lenguaje de Consulta Estructurada), es
un lenguaje de programación utilizado para gestionar y manipular bases de datos
relacionales. Originalmente desarrollado en la década de 1970 por IBM, SQL se ha
convertido en el estándar de facto para la manipulación de datos en bases de datos
debido a su simplicidad y potencia.
Las bases de datos relacionales son sistemas que permiten a los usuarios crear,
actualizar, leer y eliminar datos en una estructura tabular. Estas tablas están relacionadas
entre sí a través de claves, lo que permite a los usuarios obtener información de
múltiples tablas de manera eficiente.
Importancia de los comandos DDL en la gestión de bases de datos
DDL, o "Data Definition Language" (Lenguaje de Definición de Datos), es una parte
integral de SQL que se ocupa de la estructura o esquema de una base de datos. Mientras
que otros aspectos de SQL se centran en la manipulación y consulta de datos, DDL se
centra en definir, modificar y eliminar estructuras de datos, como tablas, índices y
relaciones.
5
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
La gestión eficiente de una base de datos requiere una estructura bien definida. Los
comandos DDL permiten a los administradores de bases de datos y a los desarrolladores
crear y modificar esta estructura para adaptarse a las necesidades cambiantes de una
organización o aplicación. Sin DDL, sería imposible crear la infraestructura necesaria para
almacenar y relacionar datos en una base de datos relacional.
Definición de DDL
DDL: Data Definition Language
Como se mencionó anteriormente, DDL es el subconjunto de SQL que se encarga de
definir y gestionar la estructura de una base de datos. A diferencia de DML (Lenguaje de
Manipulación de Datos), que se encarga de insertar, consultar, actualizar y eliminar
datos, DDL se centra en las tablas, índices, claves y otros elementos estructurales.
Diferencia entre DDL, DML y DCL
• DDL (Data Definition Language): Incluye comandos como CREATE, ALTER, y DROP.
Estos comandos definen o modifican la estructura de una base de datos, como
crear o eliminar tablas.
6
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
• DML (Data Manipulation Language): Incluye comandos como SELECT, INSERT,
UPDATE, y DELETE. Estos comandos se utilizan para manipular los datos dentro de
las tablas.
• DCL (Data Control Language): Incluye comandos como GRANT y REVOKE, que se
utilizan para controlar el acceso a los datos en la base de datos.
Comandos DDL principales
CREATE
El comando CREATE es uno de los comandos DDL más fundamentales en SQL. Se utiliza
para crear objetos en la base de datos. Estos objetos pueden ser tablas, índices, vistas,
esquemas, entre otros.
Definición y uso
El propósito principal del comando CREATE es establecer la estructura de una tabla
especificando sus columnas, tipos de datos y restricciones. También se puede usar para
crear otros objetos, como vistas, que son representaciones virtualizadas de datos
basadas en consultas de tablas existentes.
7
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Creación de tablas
Para crear una tabla, se utiliza la siguiente sintaxis básica:
CREATE TABLE nombre_tabla (
columna1 tipo_dato1 restricciones,
columna2 tipo_dato2 restricciones,
...
);
Por ejemplo, para crear una tabla llamada "Estudiantes" con columnas para ID, nombre y
edad, se usaría:
CREATE TABLE Estudiantes (
ID INT PRIMARY KEY,
Nombre VARCHAR(50),
Edad INT
);
Creación de índices
Los índices se utilizan para acelerar las consultas en bases de datos grandes. Se pueden
crear índices en una o más columnas de una tabla. La sintaxis básica es:
CREATE INDEX nombre_indice
ON nombre_tabla (columna1, columna2, ...);
Creación de vistas
Las vistas son representaciones virtualizadas de datos basadas en consultas de tablas
existentes. Permiten simplificar consultas complejas y proporcionar una capa adicional
de seguridad al restringir el acceso a ciertas partes de los datos. La sintaxis básica es:
8
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
CREATE VIEW nombre_vista AS
SELECT columnas
FROM nombre_tabla
WHERE condiciones;
ALTER
El comando ALTER se utiliza para modificar una estructura de tabla existente, como
agregar, eliminar o modificar columnas. También se puede usar para cambiar el nombre
de la tabla o modificar restricciones.
Definición y uso
Una vez que se ha creado una tabla, es posible que se necesite modificar su estructura.
Por ejemplo, es posible que se quiera agregar una nueva columna, eliminar una columna
existente o cambiar el tipo de datos de una columna. El comando ALTER permite realizar
estas modificaciones sin tener que eliminar y recrear la tabla.
Modificación de tablas existentes
Para agregar una nueva columna:
ALTER TABLE nombre_tabla
ADD nombre_columna tipo_dato;
Para eliminar una columna:
ALTER TABLE nombre_tabla
DROP COLUMN nombre_columna;
9
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Para modificar el tipo de datos de una columna:
ALTER TABLE nombre_tabla
MODIFY COLUMN nombre_columna nuevo_tipo_dato;
DROP
El comando DROP es utilizado en SQL para eliminar objetos existentes en la base de
datos. Estos objetos pueden ser tablas, índices, vistas, bases de datos, entre otros.
Definición y uso
El propósito principal del comando DROP es eliminar permanentemente un objeto de la
base de datos. Es importante tener en cuenta que una vez que se utiliza este comando, la
información se pierde de forma irreversible, por lo que se debe proceder con precaución.
Eliminación de tablas
Para eliminar una tabla, se utiliza la siguiente sintaxis:
DROP TABLE nombre_tabla;
Por ejemplo, para eliminar la tabla "Estudiantes", se usaría:
DROP TABLE Estudiantes;
Eliminación de índices
Los índices, al igual que las tablas, también pueden ser eliminados. La sintaxis básica es:
DROP INDEX nombre_indice ON nombre_tabla;
10
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Eliminación de vistas
Las vistas, al ser representaciones virtualizadas de datos, no almacenan datos por sí
mismas, pero su estructura y definición pueden ser eliminadas. La sintaxis básica es:
DROP VIEW nombre_vista;
TRUNCATE
El comando TRUNCATE se utiliza para eliminar todos los registros de una tabla, pero, a
diferencia del comando DROP, no elimina la estructura de la tabla en sí.
Definición y uso
El propósito principal del comando TRUNCATE es proporcionar una forma rápida y
eficiente de eliminar todos los registros de una tabla sin afectar su estructura. Es más
rápido que el comando DELETE porque no registra las eliminaciones individuales.
Diferencia entre TRUNCATE y DELETE
• TRUNCATE:
• Elimina todos los registros de una tabla.
• No registra las eliminaciones individuales, por lo que es más rápido.
• No se pueden usar condiciones (como WHERE).
• La estructura de la tabla permanece intacta.
11
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
• DELETE:
• Elimina registros basados en condiciones.
• Registra cada eliminación, lo que puede ser más lento.
• Se pueden usar condiciones para especificar qué registros eliminar.
• La estructura de la tabla permanece intacta.
La sintaxis básica de TRUNCATE es:
TRUNCATE TABLE nombre_tabla;
COMMENT
El comando COMMENT permite agregar comentarios descriptivos a los objetos de la
base de datos, como tablas y columnas. Estos comentarios no afectan la funcionalidad,
pero proporcionan información adicional que puede ser útil para los desarrolladores y
administradores de la base de datos.
Definición y uso
Los comentarios son descripciones o notas que se pueden agregar a los objetos de la
base de datos para proporcionar más contexto o información sobre su propósito, uso o
cualquier otra nota relevante. Estos comentarios son especialmente útiles en bases de
datos grandes donde la función o el propósito de una tabla o columna puede no ser
inmediatamente obvio.
12
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Agregar comentarios a tablas y columnas
Para agregar un comentario a una tabla:
COMMENT ON TABLE nombre_tabla IS 'Comentario descriptivo';
Para agregar un comentario a una columna:
COMMENT ON COLUMN nombre_tabla.nombre_columna IS 'Comentario descriptivo';
Por ejemplo, si se tiene una tabla llamada "Estudiantes" y se quiere agregar un
comentario a la columna "FechaNacimiento" indicando que almacena la fecha de
nacimiento en formato YYYY-MM-DD, se usaría:
COMMENT ON COLUMN [Link] IS 'Fecha de nacimiento en formato
YYYY-MM-DD';
RENAME
El comando RENAME se utiliza para cambiar el nombre de un objeto de la base de datos,
como una tabla o una columna.
Definición y uso
A medida que evoluciona una base de datos, puede ser necesario cambiar el nombre de
ciertos objetos para reflejar mejor su propósito o para seguir convenciones de
nomenclatura. El comando RENAME permite hacer esto sin afectar la estructura
subyacente o los datos almacenados en el objeto.
13
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Cambiar el nombre de tablas y columnas
Para cambiar el nombre de una tabla:
RENAME TABLE nombre_actual TO nuevo_nombre;
Cambiar el nombre de una columna es un poco más complejo y generalmente implica el
uso del comando ALTER. Por ejemplo, en algunos sistemas de gestión de bases de datos,
para cambiar el nombre de una columna, se usaría:
ALTER TABLE nombre_tabla RENAME COLUMN nombre_actual TO nuevo_nombre;
14
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Ejercicio en clase
Modificación de la estructura de la base de datos bdventas
Crea una base de datos llamada bdventas teniendo en cuenta el esquema de la base de
datos siguiente:
Esquema de la base de datos
15
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
Script de creación de la base de datos
create database bdventas;
go
use bdventas;
go
-- creamos la tabla clientes
create table Clientes(
ClienteId int,
Nombre varchar(100) not null,
Email varchar(150),
constraint pk_clientes primary key(ClienteId),
constraint uq_clientes_Email unique (Email)
);
go
create table VentasMaestro(
VentaID int,
ClienteId int,
FechaVenta date not null,
Total decimal(10,2),
constraint pk_VentasMaestro primary key(VentaId),
constraint fk_VentasMaestro_ClienteId foreign key (ClienteId)
references Clientes(ClienteId)
);
go
create table VentasDetalle(
VentaID int,
Item int not null,
Producto varchar(150) not null,
Cantidad int not null,
PrecioUnitario decimal(10,2) not null,
constraint pk_VentasDetalle primary key(VentaID,Item),
constraint fk_VentasDetalle_VentaId foreign key (VentaID)
references VentasMaestro(VentaID)
);
Operaciones de modificación a llevar a cabo
-- Agregar campo Direccion varchar de 250
ALTER TABLE Clientes ADD Direccion VARCHAR(250);
-- Modificar el tamaño de un campo existente
ALTER TABLE VentasDetalle ALTER COLUMN Producto VARCHAR(200) NOT NULL;
-- Hacer not null el campo Direccion de la tabla clientes
ALTER TABLE Clientes ALTER COLUMN Direccion VARCHAR(250) NOT NULL;
-- Eliminar la relación entre las tablas VentasMaestro y VentasDetalle
ALTER TABLE VentasDetalle DROP CONSTRAINT fk_VentasDetalle_VentaId;
-- agregar nuevamente la relación entre las tablas
16
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
ALTER TABLE VentasDetalle ADD CONSTRAINT fk_VentasDetalle_VentaId
FOREIGN KEY (VentaID) REFERENCES VentasMaestro(VentaID);
-- agregar a VentasDetalle un campo llamado DescripcionProducto de tipo
-- varchar de 300
ALTER TABLE VentasDetalle ADD DescripcionProducto VARCHAR(300);
17
Ing. José Manuel Santos Sánchez
Institución Universitaria Americana – Programa de Ingeniería de Sistemas
BIBLIOGRAFIA
W3Schools. (2023). SQL FOREIGN KEY Keyword. W3Schools. Recuperado de
[Link]
Oracle. (s.f.). Common SQL DDL Clauses. Oracle Documentation. Recuperado de
[Link]
Google Cloud. (s.f.). Data definition language (DDL) statements in GoogleSQL. Google
Cloud Documentation. Recuperado de
[Link]
language
[Link]. (s.f.). How to Create a Table with a Foreign Key in SQL. [Link].
Recuperado de [Link]
key-in-sql/
18
Ing. José Manuel Santos Sánchez