Разница между оператором и запросом в SQL - PullRequest
32 голосов
/ 19 января 2011

Я все еще живу в этой двусмысленности: концептуально, в чем разница между оператором и запросом в SQL?Кто-нибудь может дать определение для каждого из них?Это было бы полезно, например, при выборе имен переменных внутри программ таким образом, чтобы это было понятно всем.Спасибо!

ДОПОЛНИТЕЛЬНО: Как вызвать фрагмент кода SQL, созданный несколькими операторами, где операторы разделяются точкой с запятой (;)?Кто уже ответил, может отредактировать свой ответ.Большое спасибо!

Ответы [ 6 ]

30 голосов
/ 19 января 2011

A оператор - это любой текст, который ядро ​​базы данных распознает как допустимую команду.Начиная с SQL-92:

SQL-оператор - это строка символов, соответствующая правилам формата и синтаксиса, указанным в этом международном стандарте.

A query - это оператор, который возвращает набор записей (возможно, пустой).

Как я могу вызвать кусок кода SQL, созданный несколькими операторами, где операторы разделяются точкой с запятой (;)?Кто уже ответил, может отредактировать свой ответ.Большое спасибо!

Серия SQL операторов, отправляемых на сервер сразу, называется партия .

Не все SQL двигатели требовализаявления в пакете, разделенные точкой с запятой.SQL Server, например, как правило, не делает и ломает утверждения, основанные на контексте.CTE операторы, начинающиеся с WITH, являются заметным исключением.

12 голосов
/ 19 января 2011

A оператор - это любая команда SQL, такая как SELECT, INSERT, UPDATE, DELETE.

A query - синоним оператора SELECT.

10 голосов
/ 19 января 2011

Из Википедия - Элементы языка SQL

Язык SQL подразделяется на несколько языковых элементов, в том числе:

  • Пункты , являющиеся составными компонентами операторов и запросов.(В некоторых случаях это не обязательно.) [9]
  • Выражения , которые могут создавать скалярные значения или таблицы, состоящие из столбцов и строк данных.
  • Предикаты , которые определяют условия, которые могут быть оценены как значения трехзначной логики SQL (3VL) или булевы (истина / ложь / неизвестность) истинности и которые используются для ограничения эффектов операторов и запросов или для измененияход выполнения программы.
  • Запросы , которые извлекают данные на основе определенных критериев.
  • Заявления которые могут оказывать постоянное влияние на схемы и данные или могут управлять транзакциями, потоком программ, соединениями, сеансами или диагностикой.
    • SQL-операторы также включают точку с запятой (";").Хотя это и не требуется для каждой платформы, оно определяется как стандартная часть грамматики SQL.
  • Незначительный пробел обычно игнорируется в инструкциях и запросах SQL, что делает егопроще форматировать код SQL для удобства чтения.
5 голосов
/ 19 января 2011

A оператор - это общий термин для части полного, правильного SQL, который вы можете отправить в СУБД. запрос - это оператор, который будет возвращать данные, поэтому запрос - это особый тип оператора.

A SELECT ... будет запросом, DELETE... - просто оператором.

1 голос
/ 19 января 2011

Они используются взаимозаменяемо большинством, но некоторые часто используют слово «запрос» для обозначения, в частности, SELECT операторов, потому что когда вы запрашиваете что-то или кого-то, вам нужна информация.И SELECT запросы возвращают наборы результатов, так что это хорошо вписывается в описание.Это также очевидно в том факте, что операторы SELECT формально называются операторами DQL (Data Query Language).

0 голосов
/ 19 января 2011

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

...