В контексте SQL , определение данных или язык описания данных ( DDL ) является синтаксис для создания и редактирования объектов баз данных , таких как таблицы, индексы и пользователей. Операторы DDL похожи на язык компьютерного программирования для определения структур данных , особенно схем баз данных . Типичные примеры заявлений DDL включают CREATE
, ALTER
и DROP
.
История
Концепция языка определения данных и его название были впервые введены в отношении модели базы данных Codasyl , где схема базы данных была написана в синтаксисе языка, описывающем записи , поля и наборы пользовательской модели данных . [1] Позже он использовался для обозначения подмножества языка структурированных запросов (SQL) для объявления таблиц , столбцов, типов данных и ограничений . SQL-92 представил язык манипулирования схемой и таблицы информации схемы для запросов схем. [2] Эти информационные таблицы были указаны как SQL / Schemata в SQL: 2003 . Термин DDL также используется в общем смысле для обозначения любого формального языка для описания данных или информационных структур.
Язык структурированных запросов (SQL)
Многие языки описания данных используют декларативный синтаксис для определения столбцов и типов данных. Однако язык структурированных запросов (SQL) использует набор императивных глаголов, действие которых заключается в изменении схемы базы данных путем добавления, изменения или удаления определений таблиц или других элементов. Эти операторы можно свободно смешивать с другими операторами SQL, что делает DDL не отдельным языком.
СОЗДАТЬ заявление
Команда create используется для создания новой базы данных, таблицы, индекса или хранимой процедуры .
Оператор CREATE в SQL создает компонент в системе управления реляционными базами данных (RDBMS). В спецификации SQL 1992 типы компонентов, которые могут быть созданы, - это схемы, таблицы , представления , домены, наборы символов , сопоставления , переводы и утверждения. [2] Многие реализации расширяют синтаксис, позволяя создавать дополнительные элементы, такие как индексы и профили пользователей. Некоторые системы, такие как PostgreSQL и SQL Server , разрешают CREATE и другие команды DDL внутри транзакции базы данных, и поэтому их можно откатить . [3] [4]
Оператор CREATE TABLE
Часто используемой командой CREATE является команда CREATE TABLE . Типичное использование:
СОЗДАТЬ ТАБЛИЦУ [имя таблицы] ( [определения столбцов] ) [параметры таблицы]
Определения столбцов:
- Список, разделенный запятыми, состоящий из любого из следующих
- Определение столбца: [имя столбца] [тип данных] {NULL | NOT NULL} {параметры столбца}
- Определение первичного ключа : PRIMARY KEY ( [список столбцов, разделенных запятыми] )
- Ограничения: {CONSTRAINT} [определение ограничения]
- Специфическая функциональность РСУБД
Пример оператора для создания таблицы с именем « сотрудники» с несколькими столбцами:
CREATE TABLE сотрудники ( id INTEGER PRIMARY KEY , first_name VARCHAR ( 50 ) не null , last_name VARCHAR ( 75 ) not null , fname VARCHAR ( 50 ) not null , dateofbirth DATE не null );
Некоторые формы CREATE TABLE DDL могут включать в себя конструкции, подобные DML ( языку манипулирования данными ), например синтаксис SQL CREATE TABLE AS SELECT (CTaS). [5]
Заявление DROP
Оператор DROP уничтожает существующую базу данных, таблицу, индекс или представление.
DROP заявление в SQL удаляет компонент из реляционной системы управления базами данных (СУБД). Типы удаляемых объектов зависят от того, какая СУБД используется, но большинство из них поддерживает удаление таблиц , пользователей и баз данных . Некоторые системы (например, PostgreSQL ) позволяют выполнять DROP и другие команды DDL внутри транзакции и, таким образом, выполнять откат . Типичное использование просто:
DROP ObjectType имя_объекта .
Например, команда для удаления таблицы с именем « сотрудники» выглядит следующим образом:
Сотрудники DROP TABLE;
Оператор DROP отличается от операторов DELETE и TRUNCATE тем , что DELETE и TRUNCATE не удаляют саму таблицу. Например, оператор DELETE может удалить некоторые (или все) данные из таблицы, оставив при этом саму таблицу в базе данных, тогда как оператор DROP удаляет всю таблицу из базы данных.
Инструкция ALTER
Оператор ALTER изменяет существующий объект базы данных.
ALTER заявление в SQL изменяет свойства объекта внутренней части реляционной системы управления базами данных (СУБД). Типы объектов, которые можно изменить, зависят от того, какая СУБД используется. Типичное использование:
ALTER OBJECTTYPE Objectname параметры .
Например, команда для добавления (а затем удаления) столбца с именем пузырьки для существующей таблицы с именем приемник :
ALTER TABLE раковина ДОБАВИТЬ пузыри INTEGER ; ALTER TABLE раковина DROP COLUMN пузыри ;
Инструкция TRUNCATE
Оператор TRUNCATE используется для удаления всех данных из таблицы. Это намного быстрее, чем DELETE .
TRUNCATE TABLE имя_таблицы ;
Заявления о ссылочной целостности
Другой тип предложения DDL в SQL используется для определения отношений ссылочной целостности , обычно реализуемых в виде тегов первичного и внешнего ключей в некоторых столбцах таблиц. Эти два оператора могут быть включены в предложение CREATE TABLE или ALTER TABLE ;
Другие языки
- Схема XML - это пример DDL для XML .
- Схема JSON - это пример DDL для JSON .
Смотрите также
- Язык управления данными
- Язык манипулирования данными
- Язык запроса данных
- Выберите (SQL)
- Вставить (SQL)
- Обновление (SQL)
- Удалить (SQL)
- Усечь (SQL)
Рекомендации
- ^ Олле, Т. Уильям (1978). Подход Codasyl к управлению базами данных . Вайли. ISBN 0-471-99579-7.
- ^ а б «Информационные технологии - язык баз данных SQL» . SQL92 . Карнеги-Меллон . Проверено 12 ноября 2018 .
- ^ Лауденшлагер, Дуглас; Миленер, Джин; Гайер, Крейг; Байхэм, Рик. «Транзакции (Transact-SQL)» . Документы Microsoft . Microsoft . Проверено 12 ноября 2018 .
- ^ «Транзакции PostgreSQL» . Документация по PostgreSQL 8.3 . PostgreSQL . Проверено 12 ноября 2018 .
- ^ Аллен, Грант (2010). Полное руководство по SQLite . Apresspod. Майк Оуэнс (2-е изд.). Апресс. С. 90–91. ISBN 9781430232254. Проверено 2 октября 2012 .
Оператор create table имеет специальный синтаксис для создания таблиц из операторов select . [...]: [...] создать table food2 как select * from foods; [...] Многие другие базы данных называют этот подход CTaS , что расшифровывается как Create Table as Select, и эта фраза не редкость среди пользователей SQLite.
Внешние ссылки
- Столбец Oracle ALTER TABLE MODIFY
- Команды DDL в Oracle