什麼是查詢?資料庫查詢解釋

what-is-a-query.webp

在標準英語中,查詢query意味著對資訊的請求。在計算機程式設計中,它指的是同一件事,只是資訊是從資料庫中檢索的。

但是,編寫查詢需要一組預定義的程式碼才能使資料庫理解指令。這個概念也被稱為查詢語言。

雖然資料庫管理的標準語言是結構化查詢語言 (SQL),但其他簡化資料庫通訊的查詢語言包括AQLDatalogDMX

重要的!請注意,SQL與MySQL不同——前者是查詢語言,而後者是使用該語言的軟體。

本文將解釋查詢的工作原理、查詢示例,並介紹將它們寫入資料庫的步驟。

什麼是查詢?

資料庫查詢是對來自資料庫的資料的請求。請求應該來自資料庫表或使用稱為查詢語言的程式碼的表組合。這樣,系統可以相應地理解和處理查詢。

查詢如何工作?

假設您想在咖啡店點一份美式咖啡。你提出請求時說:“我可以來一杯美式咖啡嗎?”。咖啡師會理解您要求並給您訂購的物品。

查詢的工作方式相同——它為程式碼增加了意義,允許系統相應地理解和執行操作。無論是 SQL 還是任何其他查詢語言,只要使用者和資料庫使用相同的語言,就可以交換資訊。

同時,設計良好的資料庫將資料儲存在多個表中。它們由儲存資料屬性的列以及資訊行或記錄組成。然後,查詢有助於從不同的表中檢索資料,排列它們,並根據命令顯示它們。

查詢可以是選擇、操作或兩者的組合。選擇查詢可以從資料來源中檢索資訊,而操作查詢用於資料操作,例如新增、更改或刪除資料。

高階使用者還可以使用查詢命令來執行各種程式設計任務,從建立MySQL使用者和授予許可權到更改MySQL資料庫中的WordPress URL

以下是一些最常見的查詢命令及其功能:

  • SELECT – 從資料庫中獲取資料。它是最流行的命令之一,因為每個請求都以選擇查詢開始。
  • AND – 組合來自一個或多個表的資料。
  • CREATE TABLE – 構建不同的表並指定其中每列的名稱。
  • ORDER BY – 按數字或字母順序對資料結果進行排序。
  • SUM – 彙總特定列中的資料。
  • UPDATE – 修改表中的現有行。
  • INSERT – 向現有表中新增新資料或行。
  • WHERE——過濾資料並根據設定的條件獲取其值。

如需更多變體,請結合上面的一些命令。例如,將SELECT查詢與ANDSUM等其他命令配對以聚合資料或組合結果。

除了使用查詢語言從資料庫中請求資訊外,其他方法包括:

  • 使用可用引數。預設情況下,資料庫軟體具有使用者可以根據需要定義的引數列表。這些引數處理使用者定義函式 (UDF)儲存過程 (SP)之間的資訊交換。
  • 示例查詢 (QBE)。關聯式資料庫使用圖形查詢語言。系統將顯示一個程式碼模板,您可以在其中編寫和指定資料的欄位和值。因此,使用者可以填寫空白區域,而不是編寫完整的SQL語句。
  • 安裝資料庫外掛。初學者的理想解決方案 – 外掛讓使用者只需單擊幾下即可執行各種資料庫任務,包括查詢。此外,一些外掛帶有優化功能,以確保最佳效能。

除了資料庫,搜尋引擎還可以查詢和檢索資訊。但是,這兩種技術中的術語查詢不同。

網路搜尋查詢是指使用者在搜尋引擎中鍵入的關鍵字,而資料庫查詢是請求資訊的特定動作。

現在您已經瞭解了查詢的基本原理,讓我們研究一下您在查詢資料庫時可能會遇到的幾個標準術語:

  • 查詢字串– URL的一部分,用於將請求從Web傳遞到資料庫。
  • 查詢引數– 附加到URL末尾的元素,用於指定對資料庫的特定查詢。
  • 查詢摺疊– 是指啟用Power Query以轉換複雜計算以進行查詢優化的過程。
  • 查詢包含——當一個查詢包含在另一個查詢中時發生,如果它獨立於儲存的資料值。

查詢語言

如前所述,在處理查詢時選擇資料庫及其語言至關重要。除了SQL之外,還有另一種型別的資料庫,稱為NoSQL(Not Only Structured Query Language)。兩者的主要區別在於資料結構。

SQL資料庫是關係型資料庫,並使用需要您指定資料結構的預定義模式。另一方面,NoSQL資料庫是非關係型的,並且具有用於非結構化資料的動態模式。

無論如何,SQL和NoSQL都提供了適用的選項。SQL資料庫是符合ACID的資料結構的絕佳選擇。相反,如果您有非結構化文件、鍵值或圖形,那麼NoSQL資料庫可能是理想的選擇。

查詢示例

在深入研究示例之前,以下是使用查詢的主要好處:

  • 同時檢視多個表中的資料。
  • 過濾僅包含某些欄位和某些條件的記錄。
  • 自動執行資料管理任務並執行計算。

現在,假設您從調查中收集了一些資料。以下是您的資料片段。請注意,對於此示例,我們將使用SQL資料庫。

資料來源:參與者(表名)

ID 姓名 性別 年齡 職業
1 約翰 男性 17 學生
2 彼得 男性 26 失業者
3 瑪格麗特 女性 34 老師
4 莉亞 女性 34 失業者

從“參與者”表中僅選擇“姓名”和“職業”列

此示例向您展示如何建立僅返回NameOccupation值的選擇查詢。SQL語句應如下所示:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SELECT Name, Occupation FROM Participant
SELECT Name, Occupation FROM Participant
SELECT Name, Occupation FROM Participant

上面的語句過濾表中的特定資料。它將生成以下結果表:

姓名 職業
約翰 學生
彼得 失業者
瑪格麗特 老師
莉亞 失業者

要從表中選擇其他型別的資料,請相應地更改變數。

刪除失業受訪者的資料

DELETE查詢用於從特定表中刪除現有記錄。在此示例中,我們將使用以下語句刪除失業記錄:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
DELETE FROM Participant WHERE Occupation = ‘Unemployed’
DELETE FROM Participant WHERE Occupation = ‘Unemployed’
DELETE FROM Participant WHERE Occupation = ‘Unemployed’

點選回車,這將刪除相應的記錄並返回以下輸出:

ID 姓名 性別 年齡 職業
1 約翰 男性 17 學生
3 瑪格麗特 女性 34 老師

插入包含名為Mario的參與者的新行

在更廣泛的場景中,INSERT INTO查詢通過MySQLiPHP Data Object將資料插入MySQL資料庫。但是,此示例將展示如何使用查詢向資料庫表中新增新行。

有兩種不同的方法可以合併此SQL語句:

  1. 如果要新增新值和欄位,請指定所有元素。因此,該語句將如下所示:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  1. 如果您只是向所有現有列新增新值,請使用以下語句:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
INSERT INTO table_name VALUES (value1, value2, value3, ...);
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

將瑪格麗特的職業改為“校長”

要修改表中的現有記錄,請使用UPDATE查詢。同時,要指定要更新的行,請使用WHERE查詢。

在這種情況下,我們將把Margareth的職業編輯為Headmaster。因此,SQL語句將是:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
UPDATE Participant SET Occupation = ‘Headmaster’ WHERE ID = ‘3
UPDATE Participant SET Occupation = ‘Headmaster’ WHERE ID = ‘3’
UPDATE Participant SET Occupation = ‘Headmaster’ WHERE ID = ‘3’

執行查詢以將第3行更新為指定值並顯示以下輸出:

ID 姓名 性別 年齡 職業
1 約翰 男性 17 學生
2 彼得 男性 26 失業者
3 瑪格麗特 女性 34 校長
4 莉亞 女性 34 失業者

小結

查詢可以是選擇查詢或操作查詢——選擇查詢選擇部分資料,而操作查詢操作檢索到的資料。

查詢還可以結合使用這兩種操作來執行更多不同的任務,例如,檢視、插入、修改或刪除資料,以及計算和組合來自多個表的資料。

資料庫查詢表明,運算元據並不一定很複雜。大多數查詢語言都很直觀,一旦您瞭解了一些基本規則,就很容易學習。對於那些不喜歡編碼的人,您可以使用資料庫外掛或Query by example作為替代方案。

我們希望這篇文章對資料庫查詢及其工作原理有更多的瞭解。

評論留言