首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

SQL 查詢語句核心語法精要與實戰範例

     編輯:MySQL 資料庫相關知識

一、簡單查詢架構

基本 SELECT 包含三大子句:

  • 選擇列表:指定查詢欄位
  • FROM 子句:指定資料來源表/視圖
  • WHERE 子句:指定搜尋條件
SELECT nickname, email FROM testtable WHERE name = '張三'

二、選擇列表進階用法

1. 查詢所有欄位

SELECT * FROM testtable

2. 指定欄位與顯示順序

結果集欄位順序依選擇列表順序:

SELECT nickname, email FROM testtable

3. 自訂欄位標題

-- 格式:欄位標題 = 欄位名 或 欄位名 欄位標題
SELECT 暱稱 = nickname, 電子郵件 = email FROM testtable
-- 若標題含特殊字元需用引號
SELECT "暱稱" = nickname, "電子郵件" = email FROM testtable

4. 移除重複列

SELECT DISTINCT nickname FROM testtable  -- 僅保留一筆
SELECT ALL nickname FROM testtable       -- 預設,含重複

5. 限制回傳筆數

SELECT TOP 2 * FROM testtable           -- 前 2 筆
SELECT TOP 20 PERCENT * FROM testtable  -- 前 20%

三、FROM 子句進階

多表查詢與欄位限定

最多支援 256 個表/視圖。同名欄位需用表名限定:

SELECT username, citytable.cityid 
FROM usertable, citytable 
WHERE usertable.cityid = citytable.cityid

表別名簡化查詢

-- 格式:表名 AS 別名 或 表名 別名
SELECT username, b.cityid 
FROM usertable a, citytable b 
WHERE a.cityid = b.cityid

子查詢作為資料來源

SELECT a.au_fname + a.au_lname 
FROM authors a, titleauthor ta, 
     (SELECT title_id, title FROM titles WHERE ytd_sales > 10000) AS t 
WHERE a.au_id = ta.au_id AND ta.title_id = t.title_id

四、WHERE 子句條件運算符大全

分類運算符說明
比較>, >=, =, <, <=, <>, !>, !<大小比較
範圍BETWEEN ... AND ...在範圍內(含邊界)
NOT BETWEEN ... AND ...不在範圍內
列表IN (項1, 項2...)符合列表任一值
NOT IN (項1, 項2...)不符合列表任何值
模式比對LIKE / NOT LIKE字串模式比對
空值判斷IS NULL / IS NOT NULL判斷是否為 NULL
邏輯NOT, AND, OR多條件邏輯連接

範例說明

  • 範圍:age BETWEEN 10 AND 30 等同 age >= 10 AND age <= 30
  • 列表:country IN ('Germany', 'China')
  • 模式比對:適用 char、varchar、text、datetime 等類型
    • %:比對任意長度字元(中文建議用 %%)
    • _:比對單一任意字元,可限制長度
    • []:字元集合比對
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved