2009-09-30 2 views
0

Я понимаю, что DML технически охватывает SQL-глаголы, которые просто запрашивают, но не изменяют постоянные данные. (См, например, wikipedia или oracle или orafaq)Терминология: DML «, который модифицирует вещи»

Однако часто я хотел бы сослаться на «все и только те глаголы SQL, которые модифицируют хранящиеся/постоянные данные» - в основном INSERT, UPDATE, DELETE но не в простой SELECT. Есть ли официальный/стандартизованный термин или, возможно, отдельно, убедительный и изящный термин для этого подмножества DML?

+0

Woah, я взглянул на этот вопрос и прочитал «Демонология:», которая меняет вещи ». –

ответ

0

Я не думаю, что есть, к сожалению, с официальной точки зрения. Может быть, нам нужно это сделать?

Лично я считаю, что термин DML вводит в заблуждение, потому что этот термин на самом деле не описывает способ работы SELECT, поскольку он (обычно) фактически не изменить ничего. Он только «собирает» реляционные данные по-разному во временном пространстве и возвращает указанный набор.

Так что, если это был мой выбор, я бы сказал, что:

DMLопишет INSERT/UPDATE/DELETE

и

DRL (язык поиска данных) будет de писарь SELECT.

+0

Принято. Хотя я думаю, что мы будем спорить бесконечно о новой терминологии, я думаю, что толчок вашего ответа мертв. – pilcrow

+1

Возможно, мы все могли бы согласиться с тем, что DML означает «язык манипулирования данными» (в отличие от DDL, который по-прежнему является «языком определения данных»). :) –

1

Мой профессор использовал их как Edits (в отличие от Reads), но я не знаю стандартного срока для ВМС.

+0

Хм, мне это нравится: «Редактирование DML». – pilcrow

0

на основе CRUD: Create, read, update and delete, вы можете просто сказать CUD (создать, обновить, удалить). однако я не уверен, что кто-нибудь это использует.

2

DML включает SELECT INTO (в отличие от просто SELECT), потому что это синоним пластини. Не нужно подкатегоризировать.

Подумав об этом по дороге в работу, я вспомнил, что SELECT является используемый для обработки данных. Например:

SELECT t.firstname +' '+ t.lastname --String concatenation 
SELECT CAST(t.column AS int) --Datatype change 
+0

Ах ... это возможность. –

+0

Да, DML - это термин, который вы ищете. –

+0

Да и умный, но простой SELECT может преобразовывать данные только в эфемерные проекции, он не может изменять сохраненные или постоянные данные, что является намерением моего вопроса. Я уточню. – pilcrow

0

Согласно Wikipedia article on SQL,

манипуляция Data Language (DML) это подмножество SQL используется для добавления, обновления и удаления данных:

и statements discussed there (INSERT, UPDATE, DELETE, MERGE, TRUNCATE и т. д.) помещаются в different category, чем SELECT.

Итак, согласно Википедии, DML может не включать SELECT.


Согласно SQL-92 standard, глядя на содержимое таблицы из-показывает, что DML действительно включает SELECT INTO:

 13 Data manipulation ............................................371 

    (...) 

    13.5 <select statement: single row> .............................382 

    (...) 

Определение перечисленные в нем описаны SELECT <columns> INTO ....