如何在SQL查詢中正確使用where、group by和order by語句?

一、where語句

where語句用於限制查詢結果,只返回符合條件的記錄。

1.基本用法:where後面寫上限制條件,條件可以是比較運算、邏輯運算符或者函數運算。

“`sql
SELECT column1, column2,…columnN FROM table_name WHERE [condition];
“`

2.比較運算符:=、、=、或!=

SELECT * FROM customers WHERE customer_id = 1;                  // 返回ID為1的記錄
SELECT * FROM customers WHERE customer_name  'Peter';          // 返回名字不是Peter的記錄
SELECT * FROM orders WHERE order_date < '2021-09-01';            // 返回日期早於2021年9月1日的記錄

3.邏輯運算符:and、or、not

SELECT * FROM customers WHERE city = 'New York' and country = 'USA';  // 返回紐約市的美國客戶
SELECT * FROM customers WHERE city = 'Paris' or city = 'London';      // 返回巴黎或倫敦的客戶
SELECT * FROM customers WHERE not country = 'USA';                    // 返回非美國國籍的客戶

4.函數運算符:通常和比較運算符結合使用,例如LIKE,BETWEEN,IN,IS NULL等等。

SELECT * FROM customers WHERE customer_name LIKE 'Ana%';                             // 返回名字以Ana開頭的客戶,%代表任意字元
SELECT * FROM customers WHERE order_date BETWEEN '2021-01-01' AND '2021-12-31';      // 返回2021年訂單記錄
SELECT * FROM customers WHERE country IN ('USA', 'Canada', 'Mexico');                // 返回美國、加拿大或墨西哥的客戶
SELECT * FROM customers WHERE phone IS NULL;                                         // 返回沒有電話號碼的客戶

二、group by語句

group by語句用於將查詢結果按照指定列進行分組,然後對每個分組進行匯總計算。

1.基本用法:group by後面寫上列名,可以多個列名進行分組。同時,需要在select語句中使用聚合函數對分組後的結果進行計算。

“`sql
SELECT column1, SUM(column2) FROM table_name WHERE [condition] GROUP BY column1;
“`

2.聚合函數:常用的聚合函數有AVG、COUNT、MAX、MIN和SUM。

SELECT country, COUNT(*) FROM customers GROUP BY country;                  // 返回每個國家的客戶數目
SELECT country, AVG(bonus) FROM employees GROUP BY country;                // 返回每個國家員工的平均獎金
SELECT country, MAX(salary) FROM employees GROUP BY country;              // 返回每個國家員工的最高薪資
SELECT country, MIN(age) FROM employees GROUP BY country;                  // 返回每個國家員工的最低年齡
SELECT country, SUM(sales) FROM orders GROUP BY country;                   // 返回每個國家訂單銷售額之和

三、order by語句

order by語句用於對查詢結果進行排序。

1.基本用法:order by後面寫上排序的列,可以多個列名進行排序。默認為升序排列,可以使用DESC進行降序排列。

“`sql
SELECT column1, column2,…columnN FROM table_name WHERE [condition] ORDER BY column_name1 [ASC|DESC], column_name2 [ASC|DESC]…;
“`

2.排序規則:對於字元串類型的列,按照字典順序排序;對於數值類型的列,按照數值大小排序;對於日期類型的列,按照時間順序排序。

SELECT * FROM customers ORDER BY customer_name;                      // 按照名字升序排列
SELECT * FROM customers ORDER BY customer_name DESC;                 // 按照名字降序排列
SELECT * FROM orders ORDER BY order_date;                            // 按照日期升序排列

四、綜合示例

下面是一個綜合示例,同時使用了where、group by和order by語句。將查詢出大於50歲且工資高於30000的員工,然後按照國家和城市進行分組,計算出每個城市的平均工資,並按照平均工資降序排列。

“`sql
SELECT country, city, AVG(salary) as avg_salary FROM employees WHERE age > 50 AND salary > 30000 GROUP BY country, city ORDER BY avg_salary DESC;
“`

參考文獻

1. MySQL官方文檔:https://dev.mysql.com/doc/

2. W3School:https://www.w3schools.com/sql/

3. SQLZOO:https://sqlzoo.net/

原創文章,作者:UIWQ,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131253.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UIWQ的頭像UIWQ
上一篇 2024-10-03 23:44
下一篇 2024-10-03 23:44

相關推薦

  • 如何在PyCharm中安裝OpenCV?

    本文將從以下幾個方面詳細介紹如何在PyCharm中安裝OpenCV。 一、安裝Python 在安裝OpenCV之前,請確保已經安裝了Python。 如果您還沒有安裝Python,可…

    編程 2025-04-29
  • 如何在Python中實現平方運算?

    在Python中,平方運算是常見的數學運算之一。本文將從多個方面詳細闡述如何在Python中實現平方運算。 一、使用乘法運算實現平方 平方運算就是一個數乘以自己,因此可以使用乘法運…

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • 如何在Python中找出所有的三位水仙花數

    本文將介紹如何使用Python語言編寫程序,找出所有的三位水仙花數。 一、什麼是水仙花數 水仙花數也稱為自戀數,是指一個n位數(n≥3),其各位數字的n次方和等於該數本身。例如,1…

    編程 2025-04-29
  • Python for循環語句列印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句列印九九乘法表。列印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • 如何在樹莓派上安裝Windows 7系統?

    隨著樹莓派的普及,許多用戶想在樹莓派上安裝Windows 7操作系統。 一、準備工作 在開始之前,需要準備以下材料: 1.樹莓派4B一台; 2.一張8GB以上的SD卡; 3.下載並…

    編程 2025-04-29
  • Hibernate日誌列印sql參數

    本文將從多個方面介紹如何在Hibernate中列印SQL參數。Hibernate作為一種ORM框架,可以通過列印SQL參數方便開發者調試和優化Hibernate應用。 一、通過配置…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • 如何在代碼中打出正確的橫杆

    在編程中,橫杆是一個很常見的符號,但是有些人可能會在打橫杆時出錯。本文將從多個方面詳細介紹如何在代碼中打出正確的橫杆。 一、正常使用橫杆 在代碼中,直接使用「-」即可打出橫杆。例如…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29

發表回復

登錄後才能評論