首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 查詢語句完整教學:SELECT、WHERE、排序與模糊比對

     編輯:關於SqlServer

SELECT 陳述式核心語法

SELECT 是 SQL 中最常用的查詢指令,可搭配各種子句實現分組、統計、排序等功能,甚至將查詢結果存為新表。其完整語法結構如下:

SELECT 語法結構圖

子句雖可省略,但若列出必須依照標準順序:SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY → COMPUTE。

簡單查詢範例

查詢 1991 年出版的「business」類圖書及其價格:

SELECT title, price
FROM titles
WHERE DATEPART(YEAR, pubdate) = 1991 AND type = 'business';

1. SELECT 列表

  • 選擇所有欄位:SELECT * FROM discounts;
  • 指定欄位與顯示順序:SELECT discount, discounttype FROM discounts;
  • 算術運算:支援 + - * / %,但取模 (%) 不可用於 money/smallmoney 型別。若欄位值為 NULL,運算結果仍為 NULL。
  • 字串常數與變數輸出:可在列表中直接放入字串或變數,自訂顯示格式。

2. 刪除重複列

使用 DISTINCT 關鍵字移除重複資料列:

SELECT DISTINCT country FROM publishers;

3. FROM 子句與表別名

FROM 子句指定查詢來源表或視圖,最多 16 個,可跨資料庫(格式:資料庫.擁有者.物件)。為避免同名欄位產生歧義,建議使用表別名:

SELECT au_id, t.title_id
FROM titles t, titleauthor ta
WHERE t.title_id = ta.title_id;

4. WHERE 子句運算子

WHERE 運算子對照表

常用運算子範例

  • 範圍運算子 BETWEEN:WHERE price BETWEEN 10 AND 30
  • 列表運算子 IN:WHERE country IN ('germany','france')

5. 模式比對 LIKE

支援萬用字元:

  • %:比對任意長度字串
  • _:比對單一字元
  • []:比對括號內任一字元或範圍
  • [^]:比對非括號內字元
LIKE 萬用字元說明

範例

-- 名稱長度 5 字元且以 GG 開頭
SELECT pub_name FROM publishers WHERE pub_name LIKE 'GG___';

-- 空值判斷
SELECT title, price FROM titles WHERE price IS NULL;

-- 邏輯運算子組合
SELECT price, ytd_sales, title
FROM titles
WHERE (price < 5 OR price > 15) AND ytd_sales < 5000;

6. 結果排序 ORDER BY

ORDER BY 語法圖
SELECT title_id, price
FROM titles
WHERE type = 'business'
ORDER BY price DESC, title_id ASC;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved