2011-07-14 8 views
7

Что более подходит для вызова инструкций INSERT/UPDATE/DELETE? Команду? Я думаю, что «команда», так как «запрос» подразумевает, что вы задаете вопрос и ожидаете ответа на свой вопрос (и больше информации, чем просто «да», эта операция была выполнена успешно и, необязательно, вот ваш идентификатор вставки) ,SQL Номенклатура: «Запрос» или «Команда» для INSERT/UPDATE/DELETE?

Вопрос только от разработчика веб-приложений среднего уровня, который также был крупным коммуникатором и является тем, кто пользуется спецификой. :)

+1

Ну, почти все книги SQL у меня есть красный, говорит команда 'INSERT/UPDATE/delete' – Rahul

+0

мне нужно создать абстрактные классы для моей команды в порядке для реализации единицы работы, командного шаблона с Entity Framework. Я хотел, чтобы у абстрактных классов был метод Execute шаблона, который позаботился о настройке и saveChanges, так что именование было важно. То, что я придумал: AbstractMutateCommand, AbstractUpdateCommand, AbstractWriteCommand. Выбрал последний. –

+0

Я ищу то же самое - термин для 'select/insert/update/delete', но ** ** ** для вызова процедуры. Думаю, я назову это «заявлением». –

ответ

5

Общий термин для INSERT, UPDATE, DELETE и MERGE является «обновление» (хотя это может вызвать путаницу - и не идеал - это UPDATE просто подмножество «обновления»). Альтернативным термином является «реляционное присвоение».

Общий термин для SELECT, INSERT, UPDATE, DELETE, MERGE (и все остальное завершается точкой с запятой) известен как «заявление».

Строго говоря, «запрос» представляет собой оператор SELECT, который возвращает набор результатов (который, например, исключает операторы SELECT..INTO..FROM). Однако использование термина «запрос» для ссылки на обновление, хотя и неофициальное, к сожалению, очень распространено. Например, хотя «запрос обновления» является оксюмороном, когда я выполняю поиск Google для этого сайта с использованием этого точного термина (site:stackoverflow.com "update query"), я получаю 17,300 хитов!


UPDATE (каламбур indended :)

@David Маркс: Я не согласен с вашим утверждением, что это уместно сослаться к INSERT/DELETE/MERGE как 'обновление'. Это было бы предельно запутывающим. Только обновление UPDATE является обновлением.

В своем первоначальном ответе я согласился с тем, что ситуация может сбить с толку. Нам повезло, что Stackoverflow сможет отформатировать ответы и комментарии, чтобы ключевое слово UPDATE можно было отличить от логического обновления; запись ключевых слов в верхнем регистре (как требуется Full Standard SQL-92 :) также помогает.

Однако, прочитав общую базу данных и вычислительную научную литературу, я могу сказать вам, что «обновление» действительно является правильным коллективным термином. Я ниже предоставить цитату для этого:

«Введение в теории реляционных баз данных» (2010 г.), Хью Дарвен [доступен как бесплатно скачать PDF файл - Google это):

Различные операторы обновления ожидается в реляционной СУБД обычно называются INSERT, DELETE и UPDATE, а это имена , используемые в учебнике D (также в SQL) [стр.28]

К сожалению, ключевое слово UPDATE стало настолько широко принято в качестве имени только один конкретного оператора для обновления баз данных. Пожалуйста, не стреляйте в посланника! [С.168]

хотя [реляционное] назначение теоретически достаточно для целей обновления, как правило, более удобно использовать сокращенную , выражающую разность между текущим значением целевой relvar и новым значением. Иногда ... это отличие только от добавления одного или нескольких кортежей к существующему набору; иногда это просто изменяет некоторые значения атрибутов некоторых из существующих кортежей ; и иногда это просто удаление некоторых из существующих кортежей . Shorthands для этих трех частных случаев были переданы как INSERT, UPDATE и DELETE соответственно, со временем незапамятных - другими словами, еще до появления реляционных баз данных , хотя конечно до этого появления мишеней обновлений были файлы, не relvars или таблицы SQL [с.165]

+0

Я не согласен с вашими утверждениями о том, что в качестве «обновления» рекомендуется ссылаться на INSERT/DELETE/MERGE. Это было бы очень сложно. Только обновление UPDATE является обновлением. –

+0

@ Дэвид Маркс: см. Обновление моего ответа. Кроме того, подумайте, можно ли считать, что мой «MERGE» из разновидности «MERGE..IF MATCHED THEN UPDATE ...» можно считать «ОБНОВЛЕНИЕМ», а также обновлением? ;) – onedaywhen

0

Иногда что-либо другое, кроме select, считается DML - языком манипулирования данными. Однако это не сложно и быстро. Это так же часто выбирается в DML.

4

В случае сомнений назовите это «заявлением».

Смежные вопросы