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

SQL 資料檢索核心語法:SELECT、FROM、WHERE、ORDER BY 完整指南

     編輯:MySQL 資料庫相關知識

1. SELECT 子句:精準投射所需欄位

-- 反模式:全欄位掃描,效能差
SELECT * FROM customers;

-- 最佳實務:明確列出需要欄位
SELECT cust_id, cust_name, email FROM customers;

避免 SELECT *:減少網路傳輸、避免隱性相依、利用 Covering Index。

2. FROM 子句:指定資料來源

-- 單表
SELECT * FROM students;

-- 多表連接 (現代 ANSI JOIN 語法)
SELECT s.name, c.course_name 
FROM students s 
JOIN enrollments e ON s.id = e.student_id
JOIN courses c ON e.course_id = c.id;

3. WHERE 子句:條件過濾與運算子完整表

運算子功能範例
=, <>, !=等於、不等於WHERE status = 'A'
>, >=, <, <=比較WHERE score >= 60
BETWEEN範圍 (含邊界)WHERE age BETWEEN 18 AND 65
LIKE模式比對WHERE name LIKE '張%'
IN集合成員WHERE dept_id IN (10,20,30)
IS NULL / IS NOT NULL空值判斷WHERE bonus IS NULL

通配符說明

  • %:零或多個任意字元
  • _:單一任意字元
  • [abc]:字元集合中任一
  • [^abc]:排除字元集合

邏輯運算子優先順序

NOT > AND > OR。善用括號明確分組:

WHERE name = '王小明' AND (score > 90 OR bonus IS NOT NULL)

4. ORDER BY 子句:結果排序

SELECT * FROM products 
ORDER BY category ASC, price DESC NULLS LAST;
  • ASC 遞增 (預設)、DESC 遞減
  • 可用欄位名、別名、位置數字、運算式
  • NULLS FIRST / LAST 控制空值排序位置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved