В контексте SQL язык определения или описания данных ( DDL ) — это синтаксис для создания и изменения объектов базы данных, таких как таблицы, индексы и пользователи. Операторы DDL похожи на язык программирования для определения структур данных , особенно схем баз данных . Распространенные примеры операторов DDL включают , , и . Если вы видите файл .ddl, это означает, что файл содержит оператор для создания таблицы. Oracle SQL Developer содержит возможность экспорта из ERD, созданного с помощью Data Modeler, либо в файл .sql, либо в файл .ddl.CREATE
ALTER
DROP
Концепция языка определения данных и его название были впервые введены в связи с моделью базы данных Codasyl , где схема базы данных была написана на синтаксисе языка, описывающего записи , поля и наборы модели данных пользователя . [1] Позже он использовался для обозначения подмножества языка структурированных запросов (SQL) для объявления таблиц , столбцов, типов данных и ограничений . SQL-92 ввел язык манипулирования схемами и таблицы информации о схемах для запроса схем. [2] Эти информационные таблицы были определены как SQL/Schemata в SQL:2003 . Термин DDL также используется в общем смысле для обозначения любого формального языка для описания данных или информационных структур.
Многие языки описания данных используют декларативный синтаксис для определения столбцов и типов данных. Однако язык структурированных запросов (SQL) использует набор повелительных глаголов, эффект которых заключается в изменении схемы базы данных путем добавления, изменения или удаления определений таблиц или других элементов. Эти операторы можно свободно смешивать с другими операторами SQL, что делает DDL не отдельным языком.
Команда create используется для создания новой базы данных, таблицы, индекса или хранимой процедуры .
Оператор CREATE в SQL создает компонент в системе управления реляционными базами данных (RDBMS). В спецификации SQL 1992 типы компонентов, которые могут быть созданы, — это схемы, таблицы , представления , домены, наборы символов , сопоставления , переводы и утверждения. [2] Многие реализации расширяют синтаксис, позволяя создавать дополнительные элементы, такие как индексы и профили пользователей. Некоторые системы, такие как PostgreSQL и SQL Server , допускают CREATE и другие команды DDL внутри транзакции базы данных , и поэтому они могут быть откатены . [3] [4]
Часто используемая команда CREATE — это команда CREATE TABLE . Типичное использование:
CREATE TABLE [имя таблицы] ( [определения столбцов] ) [параметры таблицы]
Определения столбцов следующие:
Пример оператора для создания таблицы с именем employees и несколькими столбцами:
CREATE TABLE employees ( id INTEGER PRIMARY KEY , first_name VARCHAR ( 50 ) не null , last_name VARCHAR ( 75 ) не null , mid_name VARCHAR ( 50 ) не null , dateofbirth DATE не null );
Некоторые формы CREATE TABLE DDL могут включать конструкции, подобные DML ( языку манипулирования данными ), такие как синтаксис CREATE TABLE AS SELECT (CTaS) SQL. [5]
Оператор DROP уничтожает существующую базу данных, таблицу, индекс или представление.
Оператор DROP в SQL удаляет компонент из системы управления реляционными базами данных (RDBMS). Типы объектов, которые можно удалить, зависят от используемой RDBMS, но большинство из них поддерживают удаление таблиц , пользователей и баз данных . Некоторые системы (например, PostgreSQL ) позволяют DROP и другим командам DDL выполняться внутри транзакции и , таким образом, откатываться . Типичное использование простое:
DROP тип_объекта имя_объекта .
Например, команда для удаления таблицы с именем employees выглядит так:
УДАЛЕНИЕ ТАБЛИЦЫ сотрудников ;
Оператор DROP отличается от операторов DELETE и TRUNCATE тем, что DELETE и TRUNCATE не удаляют саму таблицу. Например, оператор DELETE может удалить некоторые (или все) данные из таблицы, оставив саму таблицу в базе данных, тогда как оператор DROP удаляет всю таблицу из базы данных.
Оператор ALTER изменяет существующий объект базы данных.
Оператор ALTER в SQL изменяет свойства объекта внутри системы управления реляционными базами данных (СУБД). Типы объектов, которые могут быть изменены, зависят от используемой СУБД. Типичное использование:
ALTER objecttype objectname параметры .
Например, команда для добавления (а затем удаления) столбца с именем bubbles для существующей таблицы с именем sink выглядит следующим образом:
ALTER TABLE приемник ADD пузырьки INTEGER ; ALTER TABLE приемник DROP COLUMN пузырьки ;
Оператор TRUNCATE используется для удаления всех данных из таблицы. Он намного быстрее, чем DELETE .
TRUNCATE TABLE имя_таблицы ;
Другой тип предложения DDL в SQL используется для определения отношений ссылочной целостности , обычно реализуемых как теги первичного ключа и внешнего ключа в некоторых столбцах таблиц. Эти два оператора могут быть включены в предложение CREATE TABLE или ALTER TABLE ;
Оператор create table имеет специальный синтаксис для создания таблиц из операторов select . [...]: [...] create table foods2 as select * from foods; [...] Во многих других базах данных этот подход называется CTaS , что означает Create Table as Select, и эта фраза не редкость среди пользователей SQLite.