Data Definition Language

A Data Definition Language (DDL) is a computer language for defining data structures. The term was first introduced in relation to the Codasyl database model, where the schema of the database was written in a Data Definition Language describing the records, fields, and "sets" making up the user Data Model. Initially it referred to a subset of SQL, but is now used in a generic sense to refer to any formal language for describing data or information structures, like XML schemas.

SQL
Initially, DDL was a subset of SQL statements.

CREATE statements
Create - To make a new database, table, index, or stored query. A  statement in SQL creates an object inside of a relational database management system (RDBMS). The types of objects that can be created depends on which RDBMS is being used, but most support the creation of tables, indexes, users, and databases. Some systems (such as PostgreSQL) allow, and other DDL commands, inside of a transaction and thus they may be rolled back.

CREATE TABLE
Perhaps the most common  command is the   command. The typical usage is:

.

Column Definitions: A comma-separated list consisting of any of the following
 * Column definition: [column name] [data type] {NULL | NOT NULL} {column options}
 * Primary key definition: PRIMARY KEY ( [comma separated column list] )
 * CONSTRAINTS: {CONSTRAINT} [constraint definition]
 * RDBMS specific functionality

For example, the command to create a table named employees with a few sample columns would be:

DROP statements
Drop - To destroy an existing database, table, index, or view.

A  statement in SQL removes an object from a relational database management system (RDBMS). The types of objects that can be dropped depends on which RDBMS is being used, but most support the dropping of tables, users, and databases. Some systems (such as PostgreSQL) allow DROP and other DDL commands to occur inside of a transaction and thus be rolled back.

The typical usage is simply. For example, the command to drop a table named employees would be:

The  statement is distinct from the   and (non-standard)   statements, in that they do not remove the table itself. For example, a  statement might delete some (or all) data from a table while leaving the table itself in the database, whereas a   statement would remove the entire table from the database.

ALTER statements
Alter - To modify an existing database object.

An  statement in SQL changes the properties of an object inside of a relational database management system (RDBMS). The types of objects that can be altered depends on which RDBMS is being used.

The typical usage is. For example, the command to add (then remove) a column named bubbles for an existing table named sink would be:

Referential integrity statements
Finally, other kind of DDL sentence in SQL are the statements to define referential integrity relationships, usually implemented as primary key and foreign key tags in some columns of the tables.

These two statements can be included inside a CREATE TABLE or an ALTER TABLE sentence.

XML Schema
XML Schema is an example of a pure DDL (although only relevant in the context of XML).

Apache DdlUtils
Apache DdlUtils is a small, easy-to-use component for working with Database Definition (DDL) files. These are XML files that contain the definition of a database schema, e.g. tables and columns. These files can be fed into DdlUtils via its Ant task or programmatically in order to create the corresponding database or alter it so that it corresponds to the DDL. Likewise, DdlUtils can generate a DDL file for an existing database.