2011-01-19 88 views
23

我仍然生活在這種模糊性中:從概念上講,SQL中的語句查詢有什麼區別?任何人都可以給每個人一個定義嗎?例如,在程序中選擇變量名稱時,這對每個人都是明確的,這很有用。 謝謝!SQL語句和查詢之間的區別

ADDITIONALLY:如何調用一個由多個語句構成的SQL代碼塊,其中語句由分號分隔(;)?已經回覆的人可以編輯他的答案。非常感謝!

回答

21

一個聲明是數據庫引擎識別爲一個有效的命令的任何文字。自SQL-92

SQL語句是一個符合本國際標準中指定的格式和語法規則的字符串。

A 查詢是一個返回記錄集(可能爲空)的語句。

如何調用由多個語句構成的SQL代碼塊,其中語句由分號(;)分隔?已經回覆的人可以編輯他的答案。非常感謝!

一系列立刻發送到服務器SQL語句被稱爲一批

並非所有SQL發動機所需的語句在批處理被分號分隔。舉例來說,SQL Server通常不會根據上下文來打破陳述。 CTE語句開始WITH是一個明顯的例外。

+0

「語句是數據庫引擎識別爲有效命令的任何文本」。請說明命令和查詢之間的區別。 – 2015-06-02 19:58:21

1

他們大多數交替使用,但一些經常使用的單詞「查詢」來表示,具體而言,SELECT語句,因爲當你查詢某事或某人,你想要的信息。並且SELECT查詢返回結果集,以便很好地符合描述。這在事實上SELECT聲明正式稱爲DQL(數據查詢語言)語句也可見一斑。

+0

是一個`SELECT..INTO`(不返回結果集)查詢嗎?是(VALUES(1))AS T(col);`(確實返回結果集)查詢? – onedaywhen 2011-01-19 14:18:42

+0

「SELECT語句正式稱爲DQL」 - 我認爲使用DML。 DDL,DCL等是非正式的。誰是這類事情的可信來源?我已經看到了DCL的各種定義。 `SELECT`通常與DML,IMO相關聯。我不認爲DQL是常用的,除了表示Doctrine查詢語言或SQL錯誤(認爲D鍵在S鍵旁邊)。 – onedaywhen 2011-01-19 14:34:29

8

A 陳述是任何SQL命令,例如SELECT,INSERT,UPDATE,DELETE。

一個查詢是SELECT語句的代名詞。

4

A 聲明是您可以發送給DBMS的完整正確SQL的一般術語。一個查詢是,將返回數據的語句,因此查詢是一種特殊的語句。

一個SELECT ...會查詢,DELETE...只是一個聲明。

7

Wikipedia - SQL Language Elements

SQL語言被細分成若干語言元素,包括:

  • 條款,這是語句和查詢的組成成分。 (在某些情況下,這些是可選的。)[9]
  • 表達式,它可以產生標量值或包含列和行數據的表。
  • 謂詞,其中指定了可以評估爲SQL三值邏輯(3VL)或布爾(真/假/未知)真值並且用於限制語句和查詢的效果的條件,或者用於更改程序流程。
  • 查詢,它根據特定的標準檢索數據。
  • 聲明,它可能對模式和數據有持久影響,或者可能控制事務,程序流,連接,會話或診斷。
    • SQL語句還包括分號(「;」)語句終止符。雖然不是每個平臺都需要,但它被定義爲SQL語法的標準部分。
  • 不重要的空白通常被忽略的SQL語句和查詢,從而更容易格式化SQL代碼的可讀性。
0

查詢用於檢索基於特定標準的數據,但聲明可能對模式和數據持久效應,或可控制的交易,程序流程,連接,會話,或診斷。另見Wikipedia