Что такое DDL и DML?


347

Я слышал термины DDL и DML применительно к базам данных, но я не понимаю, что это такое.

Что они и как они относятся к SQL?

Ответы:


283

Команду SQL можно разделить на три подгруппы: DDL, DML и DCL.

Более подробную информацию смотрите здесь: MySQL Что такое DDL, DML и DCL? , оригинал выглядит следующим образом:

DDL

DDL - это краткое имя языка определения данных, которое имеет дело со схемами и описаниями базы данных о том, как данные должны находиться в базе данных.

  • CREATE - для создания базы данных и ее объектов, таких как (таблица, индекс, представления, процедура хранения, функция и триггеры)
  • ALTER - изменяет структуру существующей базы данных
  • DROP - удалить объекты из базы данных
  • TRUNCATE - удалить все записи из таблицы, включая все места, выделенные для записей, удалены
  • КОММЕНТАРИЙ - добавить комментарии в словарь данных
  • RENAME - переименовать объект

DML

DML - это короткое имя языка манипулирования данными, которое связано с манипулированием данными и включает в себя наиболее распространенные операторы SQL, такие как SELECT, INSERT, UPDATE, DELETE и т. Д., И используется для хранения, изменения, извлечения, удаления и обновления данных в базе данных.

  • SELECT - получить данные из базы данных
  • INSERT - вставить данные в таблицу
  • ОБНОВЛЕНИЕ - обновляет существующие данные в таблице
  • DELETE - удалить все записи из таблицы базы данных
  • MERGE - операция UPSERT (вставить или обновить)
  • CALL - вызвать подпрограмму PL / SQL или Java
  • EXPLAIN PLAN - интерпретация пути доступа к данным
  • LOCK TABLE - контроль параллелизма

DCL

DCL - это короткое имя языка управления данными, которое включает в себя такие команды, как GRANT, и в основном касается прав, разрешений и других элементов управления системой базы данных.

  • GRANT - разрешить пользователям доступ к базе данных
  • REVOKE - отозвать права доступа пользователей, данные с помощью команды GRANT

TCL

TCL - это короткое имя языка управления транзакциями, которое относится к транзакциям в базе данных.

  • COMMIT - совершает транзакцию
  • ROLLBACK - откат транзакции в случае возникновения ошибки
  • SAVEPOINT - откатить точки совершения транзакций внутри групп
  • SET TRANSACTION - указать характеристики для транзакции

2
Возможно, вы захотите немного расширить свой ответ в любом будущем случае, когда ссылка станет недоступной
svarog

2
Иногда вы также увидите такие команды, как SELECT / SHOW / EXPLAIN / HELP, отделенные от DML и сгруппированные DQLс Q из Query - потому что они на самом деле ничего не манипулируют.
okdewit

1
TRUNCATE должен быть DML
Пит Элвин

@PeteAlvin никак.
ОСШ

336

DDL - это язык определения данных : он используется для определения структур данных .

Например, с помощью SQL, было бы инструкции , такие как create table, alter table...


DML является Data Manipulation Language : используется для управления самих данных .

Например, с помощью SQL, было бы инструкции , такие как insert, update, delete, ...


6
ОПИСАТЬ это DDL или DML?
Том Дж Мутиренти

2
@ TomJMuthirenthi Я не думаю, что DESCRIBEвписывается ни в одно из двух. Он просто возвращает свое собственное представление о структуре таблицы / БД. Вы можете достичь того же самого, например, CREATEно не с помощью "удобочитаемого человеком"
JensV

Если SELECT считается DML, тогда DESCRIBE должен рассматриваться как DDL.
Шлоим

40

DDL - это язык определения данных: спецификационная нотация для определения схемы базы данных. Работает на уровне схемы.

DDL команды:

create,drop,alter,rename

Например:

create table account (
  account-number  char(10),
 balance integer);

DML - язык манипулирования данными манипулирования данными. Он используется для доступа к данным и манипулирования ими.

Команды DML:

select,insert,delete,update,call

Например :

update account set balance = 1000 where account_number = 01;

1
@isapir Существует три основных способа, которыми вы можете «манипулировать» данными в SQL: (1) Вы можете изменить то, какие результаты представлены. (2) Вы можете изменить способ представления или организации результатов (с точки зрения порядка сортировки и т. Д.). (3) Вы можете изменить базовые данные. В первом случае вы можете изменить результаты, представленные в отчете SELECT, используя различные предложения WHERE, предикаты JOIN и т. Д., Т. Е. «Select * from account»; выдаст совершенно другой результат (при условии, что в аккаунте более 1 строки), чем выберите * со счета, где баланс = 1000;
Раджу

1
Когда вы выбираете данные в разных форматах, вы изменяете представление данных для этого запроса, а не сами данные. М в DML обозначает Манипулирование, или, в терминах непрофессионала, Модификация данных. SELECTне изменяет данные. В качестве альтернативы, TRUNCATEделает, и, следовательно, является инструкцией DML, а не инструкцией DDL.
Исапир

31

введите описание изображения здесь

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

  • Создать и изменить структуру объекта базы данных в базе данных.
  • Эти объекты базы данных могут иметь таблицу, представление, схему, индексы и т. Д.

например:

  • CREATE, ALTER, DROP, TRUNCATE, COMMITИ т.д.

DML, язык манипулирования данными

DML оператор влияет на таблицу. Так что это основные операции, которые мы выполняем в таблице.

  • Основные сырой операции выполняются в табл.
  • Эти операции выполняют падла являются самым SELECT, INSERT, UPDATEи т.д.

Ниже команды используются в DML:

  • INSERT, UPDATE, SELECT, DELETEИ т.д.

14

С точки зрения непрофессионала, предположим, что вы хотите построить дом, что вы делаете.

DDL т.е. язык определения данных

  1. Сборка с нуля
  2. Обнови это
  3. Уничтожь старый и воссоздай его с нуля

то есть

  1. CREATE
  2. ALTER
  3. DROP & CREATE

DML т.е. язык манипулирования данными

Люди приходят / уходят внутрь / из вашего дома

  1. SELECT
  2. DELETE
  3. UPDATE
  4. TRUNCATE

DCL т.е. язык управления данными

Вы хотите контролировать людей, к какой части дома им разрешен доступ и какой вид доступа.

  1. GRANT PERMISSION

11

DML - это аббревиатура от языка манипулирования данными . Он используется для извлечения, хранения, изменения, удаления, вставки и обновления данных в базе данных.

Примеры: операторы SELECT, UPDATE, INSERT


DDL - это аббревиатура языка определения данных . Он используется для создания и изменения структуры объектов базы данных в базе данных.

Примеры: операторы CREATE, ALTER, DROP

Посетите этот сайт для получения дополнительной информации: http://blog.sqlauthority.com/2008/01/15/sql-server-what-is-dml-ddl-dcl-and-tcl-introduction-and-examples/


3

DDL - это язык определения данных: просто подумайте, что вы определяете БД. Поэтому мы используем команды CREATE, ALTER TRUNCATE.
DML после определения мы манипулируем данными. Поэтому мы используем команду SELECT, INSERT, UPDATE, DELETE.

Помните, что команды DDL принимаются автоматически. Вам не нужно использовать операторы COMMIT.
Команды DML (Data Manipulation Language) необходимо зафиксировать / откатить.


2

DDL = язык определения данных, любые команды, которые предоставляют структуру и другую информацию о ваших данных

DML = язык манипулирования данными, их всего 3, INSERT, UPDATE, DELETE. 4, если вы будете рассчитывать SELECT * INTO x_tbl from tblна MSSQL (ANSI SQL: CREATE TABLE x_tbl AS SELECT * FROM tbl)


2

Простыми словами.

DDL (язык определения данных): будет работать над структурой данных. определить структуры данных.

DML (язык манипулирования данными): будет работать с данными. манипулирует сами данные



2

DDL

Создание, изменение, удаление (базы данных, таблицы, ключи, индекс, представления, функции, хранимые процедуры)

DML

Вставить, Удалить, Обновить, Сократить (Таблицы)


1

DDL обозначает язык определения данных. DDL используется для определения структуры таблицы, такой как создание таблицы или добавление столбца в таблицу и даже удаление и усечение таблицы. DML расшифровывается как Data Manipulation Language. Как следует из названия, DML используется для манипулирования данными таблицы. В DML есть некоторые команды, такие как вставка и удаление.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.