2011-01-19 3 views
23

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

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

ответ

21

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

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

запрос является утверждение, что возвращает набор записей (возможно, пустой).

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

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

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

+0

«Утверждение - это любой текст, который механизм базы данных распознает как действительную команду». Пожалуйста, сообщите разницу между командой и запросом. –

+0

@akshayrajkore: 'DROP DATABASE' - это команда, но не запрос – Quassnoi

1

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

+0

Является ли запрос SELECT..INTO (не возвращает результат)? Is '(VALUES (1)) AS T (col);' (возвращает результат) запрос? – onedaywhen

+0

«Операторы SELECT формально называются DQL» - я думаю, что использование DML. DDL, DCL и т. Д. Являются неофициальными. Кто является надежным источником таких вопросов? Я видел различные определения DCL. 'SELECT' обычно ассоциируется с DML, IMO. Я не думаю, что DQL обычно используется, кроме как для языка запросов Doctrine или для Windows (считайте, что ключ D находится рядом с ключом S). – onedaywhen

8

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

A запрос является синонимом оператора SELECT.

4

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

A SELECT ... будет запрос, DELETE... просто заявление.

7

От Wikipedia - SQL Language Elements

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

  • Клаусов, которые являются составными компонентами заявлений и запросов. (В некоторых случаях это необязательно.) [9]
  • Выражения, которые могут производить скалярные значения или таблицы, состоящие из столбцов и строк данных.
  • Предикаты, которые определяют условия, которые могут быть оценены в значениях трехзначной логики SQL (3VL) или Boolean (true/false/unknown) и которые используются для ограничения эффектов операторов и запросов или для изменения программный поток.
  • Запросы, которые извлекают данные на основе определенных критериев.
  • Заявления, которые могут оказывать постоянное воздействие на схемы и данные или управлять транзакциями, потоками программ, соединениями, сеансами или диагностикой.
    • Операторы SQL также включают терминатор термина «точка с запятой» («;»). Хотя это не требуется на каждой платформе, она определяется как стандартная часть грамматики SQL.
  • Незначительное пробельные обычно игнорируется в операторах SQL и запросов, что делает его более легким для форматирования кода SQL для удобства чтения.
+0

+1 для перехода на лишнюю милю :-) – paxdiablo

0

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

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