En el contexto de SQL , el lenguaje de definición de datos o de descripción de datos ( DDL ) es una sintaxis para crear y modificar objetos de bases de datos, como tablas, índices y usuarios. Las sentencias DDL son similares a un lenguaje de programación informática para definir estructuras de datos , especialmente esquemas de bases de datos . Algunos ejemplos comunes de sentencias DDL son CREATE
, ALTER
, y DROP
. Si ve un archivo .ddl, significa que el archivo contiene una sentencia para crear una tabla. Oracle SQL Developer contiene la capacidad de exportar desde un ERD generado con Data Modeler a un archivo .sql o a un archivo .ddl.
El concepto de lenguaje de definición de datos y su nombre se introdujeron por primera vez en relación con el modelo de base de datos Codasyl , donde el esquema de la base de datos se escribió en una sintaxis de lenguaje que describe los registros , campos y conjuntos del modelo de datos del usuario . [1] Más tarde se utilizó para referirse a un subconjunto del lenguaje de consulta estructurado (SQL) para declarar tablas , columnas, tipos de datos y restricciones . SQL-92 introdujo un lenguaje de manipulación de esquemas y tablas de información de esquemas para consultar esquemas. [2] Estas tablas de información se especificaron como SQL/Schemata en SQL:2003 . El término DDL también se utiliza en un sentido genérico para referirse a cualquier lenguaje formal para describir estructuras de datos o información.
Muchos lenguajes de descripción de datos utilizan una sintaxis declarativa para definir columnas y tipos de datos. Sin embargo, el lenguaje de consulta estructurado (SQL) utiliza una colección de verbos imperativos cuyo efecto es modificar el esquema de la base de datos agregando, cambiando o eliminando definiciones de tablas u otros elementos. Estas instrucciones se pueden combinar libremente con otras instrucciones SQL, lo que hace que el DDL no sea un lenguaje independiente.
El comando de creación se utiliza para establecer una nueva base de datos, tabla, índice o procedimiento almacenado .
La sentencia CREATE en SQL crea un componente en un sistema de gestión de bases de datos relacionales (RDBMS). En la especificación SQL 1992, los tipos de componentes que se pueden crear son esquemas, tablas , vistas , dominios, conjuntos de caracteres , intercalaciones , traducciones y aserciones. [2] Muchas implementaciones extienden la sintaxis para permitir la creación de elementos adicionales, como índices y perfiles de usuario. Algunos sistemas, como PostgreSQL y SQL Server , permiten CREATE y otros comandos DDL dentro de una transacción de base de datos y, por lo tanto, se pueden revertir . [3] [4]
Un comando CREATE que se utiliza con frecuencia es el comando CREATE TABLE . El uso típico es:
CREAR TABLA [nombre de la tabla] ( [definiciones de columnas] ) [parámetros de la tabla]
Las definiciones de las columnas son:
Un ejemplo de declaración para crear una tabla llamada empleados con algunas columnas es:
CREAR TABLA empleados ( id INTEGER CLAVE PRIMARIA , nombre VARCHAR ( 50 ) no nulo , apellido VARCHAR ( 75 ) no nulo , segundo nombre VARCHAR ( 50 ) no nulo , fechadenacimiento FECHA no nulo );
Algunas formas de CREATE TABLE DDL pueden incorporar construcciones similares a DML ( lenguaje de manipulación de datos ), como la sintaxis CREATE TABLE AS SELECT (CTaS) de SQL. [5]
La instrucción DROP destruye una base de datos, tabla, índice o vista existente.
Una sentencia DROP en SQL elimina un componente de un sistema de administración de bases de datos relacionales (RDBMS). Los tipos de objetos que se pueden eliminar dependen del RDBMS que se esté utilizando, pero la mayoría admite la eliminación de tablas , usuarios y bases de datos . Algunos sistemas (como PostgreSQL ) permiten que DROP y otros comandos DDL se ejecuten dentro de una transacción y, por lo tanto, se reviertan . El uso típico es simple:
DROP tipo de objeto nombre_objeto .
Por ejemplo, el comando para eliminar una tabla llamada empleados es:
Empleados de DROP TABLE ;
La instrucción DROP se diferencia de las instrucciones DELETE y TRUNCATE en que DELETE y TRUNCATE no eliminan la tabla en sí. Por ejemplo, una instrucción DELETE puede eliminar algunos (o todos) los datos de una tabla y dejar la tabla en la base de datos, mientras que una instrucción DROP elimina la tabla completa de la base de datos.
La instrucción ALTER modifica un objeto de base de datos existente.
Una sentencia ALTER en SQL cambia las propiedades de un objeto dentro de un sistema de administración de bases de datos relacionales (RDBMS). Los tipos de objetos que se pueden modificar dependen del RDBMS que se esté utilizando. El uso típico es:
ALTER objecttype objectname parámetros .
Por ejemplo, el comando para agregar (luego eliminar) una columna llamada bubbles para una tabla existente llamada sink es:
ALTER TABLE sumidero ADD burbujas INTEGER ; ALTER TABLE sumidero DROP COLUMN burbujas ;
La instrucción TRUNCATE se utiliza para eliminar todos los datos de una tabla. Es mucho más rápida que DELETE .
TRUNCAR TABLA nombre_tabla ;
Otro tipo de sentencia DDL en SQL se utiliza para definir relaciones de integridad referencial , generalmente implementadas como etiquetas de clave principal y clave externa en algunas columnas de las tablas. Estas dos sentencias se pueden incluir en una sentencia CREATE TABLE o ALTER TABLE ;
La declaración de creación de tabla tiene una sintaxis especial para crear tablas a partir de declaraciones de selección . [...]: [...] create table foods2 as select * from foods; [...] Muchas otras bases de datos se refieren a este enfoque como CTaS , que significa Create Table as Select (Crear tabla como selección), y esa frase no es poco común entre los usuarios de SQLite.