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

MySQL進階SELECT語法深度解析(二):選取清單、FROM、WHERE與邏輯運算完整指南

     編輯:MySQL 資料庫相關知識

承接上篇,本文詳細解析SELECT語句的select_list、FROM、WHERE子句及邏輯運算規則,助你精準掌握查詢語意與優化技巧。

select_list:六大構成元素

  1. *:依CREATE TABLE順序返回所有欄位。
  2. 自訂順序的欄位清單。
  3. 欄位別名:column_name AS column_heading。
  4. 運算式:欄位、常數、函數、算術/位元運算任意組合。
  5. 內建函數或聚合函數(COUNT、SUM、AVG等)。
  6. 以上任意組合。

FROM子句

  • 指定查詢涉及的表,多表以逗號分隔,順序不影響結果。
  • 表別名語法:tbl_name [AS] alias_name。
    例:SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name=t2.name。
  • 別名不可以數字開頭;WHERE、HAVING等後續子句必須使用別名引用。

WHERE子句:搜尋條件完整語法

基本形式:[NOT] expression comparison_operator expression

字串比較:<較接近字母表開頭,>較接近尾部;小寫>大寫>數字(視作業系統排序規則);尾端空格被忽略('Dirk' = 'Dirk ')。

日期比較:<表示早於,>表示晚於。

字元/日期型別必須加引號。

特殊條件運算子

  • IS [NOT] NULL:檢查NULL值。
  • [NOT] LIKE 'pattern':%(0或多字元)、_(單一字元)。DATETIME查詢建議用LIKE(如WHERE arrival_time LIKE '%9:20%')。
  • [NOT] BETWEEN x AND y:含邊界;若x > y則無結果。
  • [NOT] IN (value_list):集合成員資格檢查。

邏輯運算優先序

  1. AND:最高優先序,除非用括號改變。
  2. OR:次之,同樣可用括號改變順序。

AND要求兩條件皆真,OR僅需一真。複雜條件務必善用括號明確邏輯分組,避免語意歧義導致錯誤結果集。

算術運算子

運算子意義
=等於
> / <大於 / 小於
>= / <=大於等於 / 小於等於
!= / <>不等於
符號意義
+加
-減
*乘
/除

掌握這些基礎語法規則,是編寫高效、正確SQL查詢的基石。下篇將探討GROUP BY、HAVING、ORDER BY、LIMIT等進階子句。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved