stringtranslate.com

Язык определения данных

Сохранение файла ddl в Oracle SQL Developer
Сохранение файла ddl в Oracle SQL Developer

В контексте SQL язык определения или описания данных ( DDL ) — это синтаксис для создания и изменения объектов базы данных, таких как таблицы, индексы и пользователи. Операторы DDL похожи на язык программирования для определения структур данных , особенно схем баз данных . Распространенные примеры операторов DDL включают , , и . Если вы видите файл .ddl, это означает, что файл содержит оператор для создания таблицы. Oracle SQL Developer содержит возможность экспорта из ERD, созданного с помощью Data Modeler, либо в файл .sql, либо в файл .ddl.CREATEALTERDROP

История

Концепция языка определения данных и его название были впервые введены в связи с моделью базы данных Codasyl , где схема базы данных была написана на синтаксисе языка, описывающего записи , поля и наборы модели данных пользователя . [1] Позже он использовался для обозначения подмножества языка структурированных запросов (SQL) для объявления таблиц , столбцов, типов данных и ограничений . SQL-92 ввел язык манипулирования схемами и таблицы информации о схемах для запроса схем. [2] Эти информационные таблицы были определены как SQL/Schemata в SQL:2003 . Термин DDL также используется в общем смысле для обозначения любого формального языка для описания данных или информационных структур.

Язык структурированных запросов (SQL)

Многие языки описания данных используют декларативный синтаксис для определения столбцов и типов данных. Однако язык структурированных запросов (SQL) использует набор повелительных глаголов, эффект которых заключается в изменении схемы базы данных путем добавления, изменения или удаления определений таблиц или других элементов. Эти операторы можно свободно смешивать с другими операторами SQL, что делает DDL не отдельным языком.

CREATE-заявление

Команда create используется для создания новой базы данных, таблицы, индекса или хранимой процедуры .

Оператор CREATE в SQL создает компонент в системе управления реляционными базами данных (RDBMS). В спецификации SQL 1992 типы компонентов, которые могут быть созданы, — это схемы, таблицы , представления , домены, наборы символов , сопоставления , переводы и утверждения. [2] Многие реализации расширяют синтаксис, позволяя создавать дополнительные элементы, такие как индексы и профили пользователей. Некоторые системы, такие как PostgreSQL и SQL Server , допускают CREATE и другие команды DDL внутри транзакции базы данных , и поэтому они могут быть откатены . [3] [4]

Оператор CREATE TABLE

Часто используемая команда 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 уничтожает существующую базу данных, таблицу, индекс или представление.

Оператор DROP в SQL удаляет компонент из системы управления реляционными базами данных (RDBMS). Типы объектов, которые можно удалить, зависят от используемой RDBMS, но большинство из них поддерживают удаление таблиц , пользователей и баз данных . Некоторые системы (например, PostgreSQL ) позволяют DROP и другим командам DDL выполняться внутри транзакции и , таким образом, откатываться . Типичное использование простое:

DROP тип_объекта  имя_объекта .

Например, команда для удаления таблицы с именем employees выглядит так:

УДАЛЕНИЕ ТАБЛИЦЫ сотрудников ;  

Оператор DROP отличается от операторов DELETE и TRUNCATE тем, что DELETE и TRUNCATE не удаляют саму таблицу. Например, оператор DELETE может удалить некоторые (или все) данные из таблицы, оставив саму таблицу в базе данных, тогда как оператор DROP удаляет всю таблицу из базы данных.

Оператор ALTER

Оператор ALTER изменяет существующий объект базы данных.

Оператор ALTER в SQL изменяет свойства объекта внутри системы управления реляционными базами данных (СУБД). Типы объектов, которые могут быть изменены, зависят от используемой СУБД. Типичное использование:

ALTER objecttype  objectname  параметры .

Например, команда для добавления (а затем удаления) столбца с именем bubbles для существующей таблицы с именем sink выглядит следующим образом:

ALTER TABLE приемник ADD пузырьки INTEGER ; ALTER TABLE приемник DROP COLUMN пузырьки ;          

Оператор TRUNCATE

Оператор TRUNCATE используется для удаления всех данных из таблицы. Он намного быстрее, чем DELETE .

TRUNCATE TABLE имя_таблицы ;  

Заявления о ссылочной целостности

Другой тип предложения DDL в SQL используется для определения отношений ссылочной целостности , обычно реализуемых как теги первичного ключа и внешнего ключа в некоторых столбцах таблиц. Эти два оператора могут быть включены в предложение CREATE TABLE или ALTER TABLE ;

Другие языки

Смотрите также

Ссылки

  1. ^ Олле, Т. Уильям (1978). Подход Codasyl к управлению базами данных . Wiley. ISBN 0-471-99579-7.
  2. ^ ab "Информационные технологии - Язык баз данных SQL". SQL92 . Carnegie Mellon . Получено 12 ноября 2018 г. .
  3. ^ Лауденшлагер, Дуглас; Миленер, Джин; Гайер, Крейг; Байхэм, Рик. «Транзакции (Transact-SQL)». Microsoft Docs . Microsoft . Получено 12 ноября 2018 г. .
  4. ^ "Транзакции PostgreSQL". Документация PostgreSQL 8.3 . PostgreSQL. 7 февраля 2013 г. Получено 12 ноября 2018 г.
  5. ^ Аллен, Грант (2010). Полное руководство по SQLite. Apresspod. Майк Оуэнс (2-е изд.). Apress. стр. 90–91. ISBN 9781430232254. Получено 2012-10-02 . Оператор create table имеет специальный синтаксис для создания таблиц из операторов select . [...]: [...] create table foods2 as select * from foods; [...] Во многих других базах данных этот подход называется CTaS , что означает Create Table as Select, и эта фраза не редкость среди пользователей SQLite.

Внешние ссылки