Saltar al contenido principal
InicioTutorialesSQL

Comandos SQL DDL: La guía definitiva

Conoce los comandos DDL de SQL y cómo ayudan a definir y gestionar la estructura de los objetos de la base de datos.
Actualizado 30 jul 2024  · 11 min leer

El Lenguaje de Consulta Estructurado (SQL) es esencial para que los profesionales de los datos recuperen información de las bases de datos. Una base de datos consta de varias tablas, y hay diferentes sabores de SQL que puedes utilizar , desde PostgreSQL hasta Snowflake.

Los comandos del Lenguaje de Definición de Datos (DDL) en SQL se utilizan para definir y gestionar la estructura de los objetos de la base de datos. En este artículo explicaré los comandos DDL en SQL con ejemplos utilizando una Base de Datos de Películas. ¡Empecemos!

¿Qué son los comandos DDL en SQL?

Los comandos del Lenguaje de Definición de Datos (DDL) me permiten definir y gestionar un esquema en SQL. En pocas palabras, un esquema en SQL es un plano que define cómo se organizan los datos en una base de datos y cómo se gestionan las relaciones entre las distintas tablas de la base de datos.

Los comandos DDL constan de diferentes comandos que tienen distintas funcionalidades, que trataré en el siguiente orden:

DDL Command

DESCRIPCIÓN

SYNTAX

CREATE

Crea una tabla y sus columnas junto con su tipo de datos.

CREATE TABLE

ALTER

Modifica los nombres de las columnas y añade o elimina una columna.

ALTER TABLE

RENAME

Cambia el nombre de la tabla.

RENAME TABLE

COMMENT

Añade una explicación al código SQL para que la revisen otros miembros del equipo.

--

/* …

…*/

TRUNCATE

Eliminar datos de una tabla sin borrar la tabla.

TRUNCATE TABLE

DROP

Elimina la tabla con sus datos.

DROP TABLE

Comandos DDL en SQL con ejemplos

Ahora que tenemos una comprensión básica de los comandos DDL y sus propósitos, vamos a explorar algunos ejemplos prácticos utilizando la base de datos Movies.

Comando CREATE en SQL

Cuando necesito crear una tabla nueva, utilizo el comando CREATE TABLE como se ve a continuación:

CREATE TABLE table_name (
    column_1 datatype,
    column_2 datatype,
    ...,
    column_n datatype
);

En el ejemplo anterior, defino columnas con distintos tipos de datos. SQL admite varios tipos de datos, aunque los más comunes suelen ser STRING (texto), INT (números enteros), FLOAT (números decimales) y DATE (fecha).

Por ejemplo, si quisiera crear la tabla actor, utilizaría CREATE TABLE como tal:

CREATE TABLE actor (
    actor_id String(32767),
    first_name String(32767),
    last_name String(32767),
    last_update String(32767)
);

Dónde:

  • actor es el nombre de la tabla
  • actor_id es un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.
  • first_name es un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.
  • last_name es un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.
  • last_update es un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.

Una vez que ejecute la consulta, la nueva tabla será visible junto con las demás tablas, para que pueda consultar desde ella en cualquier momento.

Comando ALTER en SQL

Utilizando ALTER en SQL, puedo actualizar una tabla sin tener que crear otra y eliminar la antigua. Las organizaciones pueden tener miles de tablas, y saber cómo mantener los datos actualizados sin arriesgarse a pérdidas de datos es esencial.

Es importante tener en cuenta que hay varias formas de utilizar ALTER, entre ellas:

  • Añadir nuevas columnas en una tabla
  • Renombrar columnas de una tabla
  • Modificar columnas de una tabla
  • Eliminar columnas de una tabla

Comando ADD en ALTER

Para añadir una nueva columna utilizando ALTER, combinamos el comando ALTER con el comando ADD, como se ve a continuación:

ALTER TABLE table_name ADD column_name datatype;

Aquí, añadimos una nueva columna nationality con el tipo de datos STRING a la tabla de actores.

ALTER TABLE actor ADD nationality String(32767);

Todos los comandos de ALTER en SQL siguen una estructura similar, lo que hace que SQL sea un lenguaje de programación natural de aprender y dominar.

Comando RENAME en ALTER

Siempre que necesito cambiar el nombre de una columna, utilizo el comando RENAME en ALTER de la siguiente manera:

ALTER TABLE table_name RENAME COLUMN old_column_name TO new_column_name;

Por ejemplo, cambiemos el nombre de la columna last_name por family_name para que no haya confusión, tanto si se refiere a un segundo nombre como a un apellido. En ese caso, consultaré lo siguiente:

ALTER TABLE actor RENAME COLUMN last_name TO family_name;

Comando MODIFY en ALTER

Los tipos de datos definen las propiedades de las columnas e influyen en la calidad de los datos. Por ejemplo, last_update se configuró como String(text), pero los datos muestran claramente que representa la fecha y la hora.

Observando los distintos tipos de datos y remitiéndonos a los datos de la columna, el tipo de datos adecuado es TIMESTAMP.

Actualizar adecuadamente el tipo de datos de una columna facilita la agregación y filtrado de los datos por fecha mediante otros comandos SQL. Así se utiliza MODIFY en SQL:

ALTER TABLE table_name ALTER COLUMN column_name datatype;

Reflejando lo anterior en last_update, utilizo la siguiente consulta:

ALTER TABLE actor ALTER COLUMN last_update TIMESTAMP;

Comando DROP en ALTER

La última opción que ofrece ALTER es soltar una columna. Existen numerosas razones por las que necesitaría DROP una columna, entre las que se incluyen:

  • Información que ya no es relevante,
  • Información duplicada, cuando la misma columna se encuentra en otra tabla,
  • Problemas de calidad de los datos,
  • Optimiza el espacio de almacenamiento.

Eliminar una columna en SQL es fácil, pero utilízalo con precaución porque no siempre es posible revertir la acción de eliminar una columna.

ALTER TABLE table_name DROP COLUMN column_name;

El comando para eliminar una columna es similar al de cambiar el nombre de una columna, pero ambos son no son lo mismo. Cambiar el nombre de la columna mantiene los datos dentro de la columna, pero cambia la cabecera. Por otro lado, el comando DROP elimina tanto los datos como la cabecera, como si la columna nunca hubiera existido.

Tras darme cuenta de que la columna last_update proporciona poca información, aparte de si se ha actualizado la base de datos, decidí eliminarla mediante la siguiente consulta:

ALTER TABLE actor DROP COLUMN last_update; 

Comando RENAME en SQL

El comando RENAME sólo sirve para cambiar el nombre de la tabla y no debe confundirse con las funciones de ALTER's RENAME. De hecho, para cambiar el nombre de una tabla, la consulta es simplemente:

RENAME TABLE old_table_name TO new_table_name;

La tabla actor sólo contiene nombres y no incluye otra información sobre los actores. Por lo tanto, tiene sentido aclararlo cambiando el nombre de la tabla por:

RENAME TABLE actor TO actor_names;

COMENTARIO en SQL

Comentar en SQL es crucial para la claridad y el contexto, haciendo que tus consultas sean más fáciles de entender y mantener. Ayuda a explicar la lógica compleja, a documentar los cambios y a justificar determinadas elecciones. En SQL, puedes añadir comentarios de dos formas:

  • Comentarios de una sola línea
  • Comentarios multilínea

Veámoslos en acción.

Comentarios de una sola línea en SQL

Los comentarios en una sola línea suelen hacerse junto al código, como a continuación. Así, puedo leer el comentario de un colega mientras leo el código.

En la tabla actor, actor_id y last_update no son intuitivos y requieren una aclaración mediante un comentario.

CREATE TABLE actor (
 actor_id String(32767), --unique identifier
 first_name String(32767),
 last_name String(32767),
 last_update String(32767)--datetime of last update
);

Comentar en SQL es un comando diferente al resto de este artículo porque no llama a una función COMENTAR. Los dos guiones sin espacio entre "--" indican el comienzo de un comentario. Todo lo que se escriba después no se considerará parte del código.

Comentarios multilínea en SQL

Cuando la explicación sea más larga, utiliza comentarios de varias líneas. Es preferible para explicar una función o proporcionar un contexto detallado. Para añadir un comentario de varias líneas en SQL, empieza con /* y termina con */. El motor SQL ignora cualquier cosa escrita entre /* y */ y no se ejecuta como parte de la consulta.

/* Create a table `actor` with the actors’ names. Store first and last name, and keep track of any updates*/
CREATE TABLE actor (
 actor_id String(32767), --unique internal identifier
 first_name String(32767),
 last_name String(32767),
 last_update String(32767)--datetime of last update
);

Comando TRUNCATE en SQL

Truncar una tabla no es lo mismo que borrarla. Truncar elimina todos los datos pero mantiene intacta la estructura de la tabla, mientras que borrar elimina toda la tabla, incluida su estructura. Hay que tener cuidado de elegir el comando adecuado para el fin apropiado.

El equivalente de TRUNCATE en Excel se puede conseguir seleccionando todos los datos bajo el nombre de la columna, y pulsando suprimir. En SQL, escribo:

TRUNCATE TABLE table_name;

Si hay que truncar el actor, lo ejecuto:

TRUNCATE TABLE actor;

El resultado sería una tabla con sólo nombres de columnas y sin valores.

Comando DROP en SQL

Al contrario que TRUNCATE, el comando DDL DROP borra la tabla y todos sus valores por completo. Hay que tener cuidado al ejecutar estos comandos, ya que esta acción puede no ser siempre reversible. El comando DROP tiene una estructura similar a la consulta TRUNCATE:

DROP TABLE table_name;

Para que borrar el actor de la tabla sea tan sencillo como

DROP TABLE actor;

Aunque los diferentes sabores de SQL pueden requerir ligeros cambios en la sintaxis, los comandos DDL anteriores son en gran medida los mismos, independientemente de la versión de SQL que estés utilizando.

Comandos DDL frente a otros tipos de comandos

En la sección anterior, expliqué cómo los comandos DDL definen la estructura de las tablas y actualizan su contenido o propiedades según sea necesario. Otros tipos de comandos SQL permiten seleccionar, agregar, actualizar e incluso unir tablas para obtener una visión diferente de los datos, y cada conjunto de comandos tiene una finalidad específica.

Mando

Definición

Propósito

DQL

Lenguaje de consulta de datos

Obtener datos de la base de datos en función de un criterio

DML

Lenguaje de manipulación de datos

Manipula tablas de la base de datos con más funciones que ALTER.

DCL

Lenguaje de control de datos

Controles de acceso y autoridad.

TCL

Lenguaje de Control de Transacciones

Actualiza la base de datos con los cambios modificados mediante comandos DML

Desarrolla tus habilidades SQL con DataCamp

La buena calidad de los datos se consigue cuando éstos están bien definidos y estructurados. Los comandos DDL de SQL ayudan a los profesionales de los datos a crear y mantener una base de datos estructurada. Otros comandos SQL, como los comandos DML, te permiten ver, agregar, insertar, filtrar y combinar datos. Aprende más sobre SQL y desarrolla tus habilidades explorando los siguientes recursos:

Temas

¡Continúa hoy tu viaje SQL!

Course

Introduction to SQL

2 hr
780.6K
Learn how to create and query relational databases using SQL in just two hours.
See DetailsRight Arrow
Start Course
Ver másRight Arrow
Relacionado

blog

SQL Server, PostgreSQL, MySQL... ¿cuál es la diferencia? ¿Por dónde empiezo?

En este tutorial, aprenderás algunas de las diferencias básicas entre los dialectos SQL y por dónde deberías empezar.

Mona Khalil

5 min

blog

10 proyectos SQL listos para el portafolio para todos los niveles

Selecciona tu primer -o siguiente- proyecto SQL para practicar tus habilidades SQL actuales, desarrollar otras nuevas y crear un portafolio profesional excepcional.

tutorial

Introducción a los disparadores SQL: Guía para desarrolladores

Aprende a utilizar los disparadores SQL para automatizar tareas, mantener la integridad de los datos y mejorar el rendimiento de la base de datos. Prueba ejemplos prácticos como los comandos CREATE, ALTER y DROP en MySQL y Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

tutorial

Ejemplos y tutoriales de consultas SQL

Si quiere iniciarse en SQL, nosotros le ayudamos. En este tutorial de SQL, le presentaremos las consultas SQL, una potente herramienta que nos permite trabajar con los datos almacenados en una base de datos. Verá cómo escribir consultas SQL, aprenderá sobre
Sejal Jaiswal's photo

Sejal Jaiswal

21 min

tutorial

Cuadros de mando de Power BI frente a informes: Una guía completa

Explore las diferencias clave y las características únicas de los cuadros de mando e informes de Power BI. Aprenda a aprovechar eficazmente ambas herramientas para el análisis de datos, la visualización y la toma de decisiones.
Maarten Van den Broeck's photo

Maarten Van den Broeck

8 min

tutorial

Tutorial de SQLAlchemy con ejemplos

Aprende a acceder y ejecutar consultas SQL en todo tipo de bases de datos relacionales utilizando objetos Python.
Abid Ali Awan's photo

Abid Ali Awan

13 min

See MoreSee More