Navicat 部落格

2019 年 5 月 23 日,由 Robert Gravelle 撰寫

資料是許多大小企業的核心部分。例如,Facebook儲存每個使用者的個人資料資訊,資料庫系統內的資料包括他們的朋友和貼文。SQL(Structured Query Language 的縮寫)是一種程式語言,使開發人員和資料庫管理員能夠使用那些資料。

對於資料庫操作,你應該熟悉一些常用的 SQL 命令。除了資料定義語言(DDL)或資料操縱語言(DML)語句,SQL 命令包括使用 SELECT 語句從資料表和檢視中取得資料的命令。本篇文章將介紹幾個最重要的查詢,以及使用 Navicat Premium 作為資料庫用戶端的一些示範。

判斷欄的最小值或最大值

Sakila 範例資料庫包含許多以電影業為主題的資料表,涵蓋了演員和電影製片廠以至影碟出租店的所有內容。我們今天將在這裡構建的查詢將在這個資料庫中執行。因此,如需下載和安裝 Sakila 資料庫的說明,請參閱 Generating Reports on MySQL Data(產生 MySQL 資料的報表)教學。

film 資料表是 Sakila 資料庫中的一個主要資料表。它包含了虛構影碟出租店擁有的每部電影的詳細資料。它包括電影標題、發行年份以及租賃價格等資訊:

假設我們想知道電影價格的範圍,也就是說,最低和最高的租金。我們可以使用 MIN() 和 MAX() 彙總函式很容易地找到範圍。彙總函式對一組值執行計算並傳返單一數值結果。彙總函式有許多種,包括 AVG、COUNT、SUM、MIN、MAX 等。這個查詢將 MIN() 和 MAX() 套用於 film 資料表的 rental_rate 欄位:

SELECT MIN(f.rental_rate) as lowest_price,
       MAX(f.rental_rate) as highest_price
FROM film f;

正如所料,每個函式都傳回一個數值:

依照類別將結果分組

GROUP BY 是 SQL 其中一個最強大的子句。它將具有相同數值的列組合到摘要列中。因此,GROUP BY 語句通常與彙總函式(COUNT、MAX、MIN、SUM、AVG)一起使用,以一欄或多欄將結果集分組。

我們可以使用 GROUP BY 子句列出每個電影評級(即 General、PG、PG-13 等)的最低和最高租金。我們需要做的就是將 rating 欄位加到欄列表並附加 GROUP BY 子句到我們現有查詢的結尾:

SELECT f.rating,
       MIN(f.rental_rate) as lowest_price,
       MAX(f.rental_rate) as highest_price
FROM film f
GROUP BY f.rating;

結果顯示每個電影評級的電影價格是從 $0.99 到 $4.99 :

總結

今天的文章介紹了一些重要的查詢,以及使用 Navicat Premium 作為資料庫用戶端的一些示範。Navicat 的自動完成程式碼和自訂的程式碼片段功能透過關鍵字建議和減少重複輸入相同的程式碼,令編碼更加快速。你可以免費試用 14 天進行評估。

Navicat 文章
頻道記錄
分享
部落格封存檔