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:
CREATETABLE table_name (
column_1 datatype,
column_2 datatype,...,
column_n datatype
);Con la tecnología de
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:
CREATETABLE actor (
actor_id String(32767),
first_name String(32767),
last_name String(32767),
last_update String(32767));Con la tecnología de
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:
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:
ALTERTABLE table_name RENAMECOLUMN old_column_name TO new_column_name;Con la tecnología de
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:
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:
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.
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:
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:
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:
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.
CREATETABLE actor (
actor_id String(32767),--unique identifier
first_name String(32767),
last_name String(32767),
last_update String(32767)--datetime of last update);Con la tecnología de
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*/CREATETABLE actor (
actor_id String(32767),--unique internal identifier
first_name String(32767),
last_name String(32767),
last_update String(32767)--datetime of last update);Con la tecnología de
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:
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:
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:
Selecciona tu primer proyecto SQL, o el siguiente, para practicar tus habilidades actuales en SQL, desarrollar otras nuevas y crear un portafolio profesional excepcional.
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.
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
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.
Aprende a crear, conectar, gestionar, consultar y proteger tu base de datos Azure SQL. Esta guía paso a paso cubre todo lo esencial para una configuración óptima de la base de datos.
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
CREATECrea una tabla y sus columnas junto con su tipo de datos.
CREATE TABLEALTERModifica los nombres de las columnas y añade o elimina una columna.
ALTER TABLERENAMECambia el nombre de la tabla.
RENAME TABLECOMMENTAñade una explicación al código SQL para que la revisen otros miembros del equipo.
--/* ……*/TRUNCATEEliminar datos de una tabla sin borrar la tabla.
TRUNCATE TABLEDROPElimina la tabla con sus datos.
DROP TABLEComandos 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 TABLEcomo se ve a continuación: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íaCREATE TABLEcomo tal: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:Comando ADD en ALTER
Para añadir una nueva columna utilizando
ALTER, combinamos el comandoALTERcon el comandoADD, como se ve a continuación:Aquí, añadimos una nueva columna
nationalitycon el tipo de datosSTRINGa la tabla de actores.Todos los comandos de
ALTERen 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
RENAMEenALTERde la siguiente manera:Por ejemplo, cambiemos el nombre de la columna
last_nameporfamily_namepara que no haya confusión, tanto si se refiere a un segundo nombre como a un apellido. En ese caso, consultaré lo siguiente: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_updatese configuró comoString(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
MODIFYen SQL:Reflejando lo anterior en
last_update, utilizo la siguiente consulta:Comando DROP en ALTER
La última opción que ofrece
ALTERes soltar una columna. Existen numerosas razones por las que necesitaríaDROPuna columna, entre las que se incluyen: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.
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
DROPelimina tanto los datos como la cabecera, como si la columna nunca hubiera existido.Tras darme cuenta de que la columna
last_updateproporciona poca información, aparte de si se ha actualizado la base de datos, decidí eliminarla mediante la siguiente consulta:Comando RENAME en SQL
El comando
RENAMEsólo sirve para cambiar el nombre de la tabla y no debe confundirse con las funciones deALTER'sRENAME. De hecho, para cambiar el nombre de una tabla, la consulta es simplemente:La tabla
actorsó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: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:
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_idylast_updateno son intuitivos y requieren una aclaración mediante un comentario.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.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
TRUNCATEen Excel se puede conseguir seleccionando todos los datos bajo el nombre de la columna, y pulsando suprimir. En SQL, escribo:Si hay que truncar el
actor, lo ejecuto: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 DDLDROPborra 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 comandoDROPtiene una estructura similar a la consultaTRUNCATE:Para que borrar el actor de la tabla sea tan sencillo como
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: