萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

SQL 基礎查詢、增刪改、排序、聚合函數速查表

SQL 核心語法速查表 (ANSI SQL / MySQL / SQL Server 通用)

整理最常用的 SQL 基礎操作語句,適合快速查閱與入門參考。

資料查詢 (DQL)

-- 全欄位查詢
SELECT * FROM table1 WHERE 條件;

-- 指定欄位
SELECT col1, col2 FROM table1 WHERE 條件;

-- 模糊查詢
SELECT * FROM table1 WHERE col1 LIKE '%關鍵字%';
-- % 任意長度字串,_ 單一字元,[] 字元範圍 (SQL Server)

-- 排序
SELECT * FROM table1 ORDER BY col1 ASC, col2 DESC;
-- ASC 升序 (預設),DESC 降序

資料操作 (DML)

-- 插入單筆
INSERT INTO table1 (col1, col2) VALUES (值1, 值2);

-- 插入多筆 (標準 SQL / MySQL / PostgreSQL)
INSERT INTO table1 (col1, col2) VALUES 
(值1, 值2), (值3, 值4), (值5, 值6);

-- 更新
UPDATE table1 SET col1 = 新值 WHERE 條件;

-- 刪除
DELETE FROM table1 WHERE 條件;
-- ⚠️ 無 WHERE 會刪除全表!

聚合函數

函數說明範例
COUNT(*)統計行數 (含 NULL)SELECT COUNT(*) AS total FROM table1
COUNT(col)統計非 NULL 個數SELECT COUNT(email) FROM users
SUM(col)數值加總SELECT SUM(amount) FROM orders
AVG(col)平均值SELECT AVG(score) FROM exams
MAX(col)最大值SELECT MAX(price) FROM products
MIN(col)最小值SELECT MIN(price) FROM products

分組與過濾

-- GROUP BY 分組統計
SELECT category, COUNT(*), AVG(price) 
FROM products GROUP BY category;

-- HAVING 分組後過濾 (WHERE 無法用聚合函數)
SELECT category, COUNT(*) 
FROM products GROUP BY category HAVING COUNT(*) > 10;

進階查詢片段

-- 分頁 (MySQL/PostgreSQL/SQLite)
SELECT * FROM table1 LIMIT 10 OFFSET 20;  -- 第 3 頁,每頁 10 筆

-- 分頁 (SQL Server 2012+)
SELECT * FROM table1 ORDER BY id OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;

-- 去重
SELECT DISTINCT col1 FROM table1;

-- 子查詢
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2 WHERE condition);

-- 關聯查詢 (INNER JOIN)
SELECT t1.name, t2.order_no 
FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.t1_id;

常用字串/日期函數 (MySQL 為主)

-- 字串
CONCAT(str1, str2), SUBSTRING(str, pos, len), TRIM(str), REPLACE(str, from, to)

-- 日期
NOW(), CURDATE(), DATE_ADD(date, INTERVAL n DAY), DATEDIFF(date1, date2)
DATE_FORMAT(date, '%Y-%m-%d %H:%i:%s')

交易控制


START TRANSACTION;
-- SQL 操作
COMMIT;  -- 或 ROLLBACK;
copyright © 萬盛學電腦網 all rights reserved