Язык манипулирования данными ( DML ) — это язык программирования, используемый для добавления (вставки), удаления и изменения (обновления) данных в базе данных . DML часто является подъязыком более широкого языка баз данных , такого как SQL , при этом DML включает в себя некоторые операторы языка. [1] Выборка данных только для чтения иногда выделяется как часть отдельного языка запросов к данным (DQL), но она тесно связана с DML и иногда также считается его компонентом; некоторые операторы могут выполнять как выборку (чтение), так и запись.
Популярным языком манипулирования данными является язык структурированных запросов (SQL), который используется для извлечения и манипулирования данными в реляционной базе данных . [2] Другие формы DML используются базами данных IMS /DLI, CODASYL , такими как IDMS и другими.
В SQL язык манипулирования данными включает операторы изменения данных SQL , [3] , которые изменяют хранимые данные, но не схему или объекты базы данных. Манипулирование постоянными объектами базы данных, например, таблицами или хранимыми процедурами , посредством операторов схемы SQL, [3], а не данными, хранящимися в них, считается частью отдельного языка определения данных (DDL). В SQL эти две категории схожи по своему детальному синтаксису, типам данных, выражениям и т. д., но различаются по своей общей функции. [3]
Операторы изменения данных SQL являются подмножеством операторов SQL-данных ; он также содержит оператор запроса SELECT , [3] который, строго говоря, является частью DQL, а не DML. Однако в обычной практике это различие не проводится, и SELECT широко рассматривается как часть DML, [4] поэтому DML состоит из всех операторов SQL-данных , а не только операторов изменения данных SQL . SELECT ... INTO ...
Форма объединяет как выбор, так и манипуляцию, и, таким образом, строго считается DML, поскольку она манипулирует (т. е. изменяет) данными.
Языки манипулирования данными имеют свои функциональные возможности, организованные начальным словом в операторе, который почти всегда является глаголом . В случае SQL, эти глаголы следующие:
SELECT ... FROM ... WHERE ...
(строго говоря DQL)INSERT INTO ... VALUES ...
UPDATE ... SET ... WHERE ...
DELETE FROM ... WHERE ...
Например, команда для вставки строки в таблицу employees :
INSERT INTO employees ( first_name , last_name , fname ) VALUES ( 'John' , 'Capita' , 'xcapit00' );
Большинство реализаций баз данных SQL расширяют свои возможности SQL, предоставляя императивные , т.е. процедурные языки. Примерами этого являются Oracle PL /SQL и IBM Db2 SQL_PL .
Языки манипулирования данными, как правило, имеют много различных вкусов и возможностей у поставщиков баз данных. Существует ряд стандартов, установленных для SQL ANSI , [2], но поставщики по-прежнему предоставляют свои собственные расширения к стандарту, не реализуя при этом весь стандарт.
Языки манипулирования данными делятся на два типа: процедурное программирование и декларативное программирование .
Первоначально языки манипулирования данными использовались только в компьютерных программах , но с появлением SQL стали использоваться администраторами баз данных в интерактивном режиме.
Операторы языка манипулирования данными (DML)
запрашивают или манипулируют
данными в существующих объектах схемы.