Curso
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 |
|
|
Crea una tabla y sus columnas junto con su tipo de datos. |
|
|
|
Modifica los nombres de las columnas y añade o elimina una columna. |
|
|
|
Cambia el nombre de la tabla. |
|
|
|
Añade una explicación al código SQL para que la revisen otros miembros del equipo. |
|
|
|
Eliminar datos de una tabla sin borrar la tabla. |
|
|
|
Elimina la tabla con sus datos. |
|
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:
actores el nombre de la tablaactor_ides un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.first_namees un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.last_namees un nombre de columna cuyo contenido se espera que esté en formato de texto (String) y no supere los 32767 caracteres.last_updatees 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:
- Aprende los distintos tipos de comandos para trabajar con SQL
- Ten a mano una hoja de trucos SQL para familiarizarte con las mejores prácticas y los comandos de uso frecuente.
- Prepárate para una entrevista SQL con nuestra Guía de Entrevistas Top SQL
