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

MySQL 進階實戰精華:子查詢、關聯查詢、視圖、循環與優化技巧全景圖

     編輯:MySQL 綜合教學

MySQL 進階實戰精華集錦

涵蓋 DDL/DML/DCL 分類、高階查詢運算符、五大子查詢類型、三種循環結構、視圖最佳實踐、多表關聯查詢深度解析,是從入門到進階的知識地圖。

SQL 語句分類速記

  • DDL:CREATE、ALTER、DROP、DECLARE
  • DML:SELECT、INSERT、UPDATE、DELETE
  • DCL:GRANT、REVOKE、COMMIT、ROLLBACK

高階查詢運算符

運算符行為去重
UNION合併結果集預設去重
UNION ALL合併結果集保留重複
EXCEPT差集(在表1不在表2)預設去重
INTERSECT交集預設去重

五大子查詢類型實戰

  1. 標量子查詢:返回單值 WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)
  2. 列子查詢:返回 N 行 1 列 WHERE uid IN (SELECT uid FROM user WHERE status=1)
  3. 行子查詢:返回 1 行 N 列 WHERE (1,2) = (SELECT col1,col2 FROM table)
  4. 表子查詢:返回 N 行 N 列 WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)
  5. FROM 子查詢:派生表 SELECT * FROM (SELECT ... FROM t) AS derived

EXISTS 與關聯子查詢

# EXISTS:主查詢行放入子查詢驗證
SELECT * FROM article WHERE EXISTS (SELECT * FROM user WHERE article.uid=user.uid);

# 關聯子查詢:子查詢引用外部表
SELECT article.* FROM article INNER JOIN user ON article.uid=user.uid;

存儲過程循環結構

  • WHILE:先判斷後執行,適合已知次數
  • REPEAT:先執行後判斷,至少執行一次
  • LOOP:配合 LEAVE label 實現靈活控制

視圖最佳實踐

  1. 簡化複雜查詢:將常用聚合邏輯封裝為視圖
  2. 權限隔離:僅暴露非敏感列(如隱藏價格欄位)
  3. 維護成本低:基表變更自動反映到視圖

關聯查詢深度解析

類型語法關鍵字結果集特徵
內連接INNER JOIN / JOIN僅返回匹配行
左外連接LEFT OUTER JOIN左表全量 + 右表匹配/NULL
右外連接RIGHT OUTER JOIN右表全量 + 左表匹配/NULL
全外連接FULL OUTER JOIN雙表全量 + 匹配/NULL

核心原則:ON 子句放連接條件,WHERE 子句放業務過濾條件;多表 JOIN 時優先考慮小表驅動大表。

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