本文匯總 MySQL 最核心的 DDL、DML、DCL 基礎語法,適合初學者速查與資深開發者回顧。涵蓋建庫/刪庫、建表/刪表/修改表結構、主鍵索引視圖操作、基礎增刪改查、聚合函數、排序分頁等高頻語句。
-- 建庫
CREATE DATABASE db_name [CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci];
-- 刪庫(謹慎!)
DROP DATABASE db_name;
-- 備份(SQL Server 語法,MySQL 請用 mysqldump)
-- USE master;
-- EXEC sp_addumpdevice 'disk', 'testBack', 'c:\backup\mydb.dat';
-- BACKUP DATABASE pubs TO testBack;
CREATE TABLE tab_name (
col1 type1 [NOT NULL] [PRIMARY KEY],
col2 type2 [NOT NULL],
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 僅複製結構
CREATE TABLE new_tbl LIKE old_tbl;
-- 複製結構+數據(可加 WHERE 過濾)
CREATE TABLE new_tbl AS SELECT col1, col2 FROM old_tbl WHERE ...;
DROP TABLE [IF EXISTS] tab_name;
ALTER TABLE tab_name ADD COLUMN col_name type [NOT NULL] [DEFAULT val];
⚠️ MySQL 8.0 前不支援 DROP COLUMN 瞬時完成(需重建表),8.0+ 支援 INSTANT DDL。
-- 增加主鍵
ALTER TABLE tab_name ADD PRIMARY KEY (col);
-- 刪除主鍵
ALTER TABLE tab_name DROP PRIMARY KEY;
-- 建立索引
CREATE [UNIQUE] INDEX idx_name ON tab_name (col1, col2...);
-- 刪除索引
DROP INDEX idx_name ON tab_name;
-- 或
ALTER TABLE tab_name DROP INDEX idx_name;
⚠️ 索引不可修改,需刪除重建。
-- 建立視圖
CREATE VIEW view_name AS SELECT ...;
-- 刪除視圖
DROP VIEW [IF EXISTS] view_name;
| 操作 | 語法模板 | 示例 |
|---|---|---|
| 查詢 | SELECT * FROM t WHERE condition | SELECT * FROM user WHERE age > 18 |
| 插入 | INSERT INTO t (c1,c2) VALUES (v1,v2) | INSERT INTO user(name,age) VALUES('Tom',20) |
| 刪除 | DELETE FROM t WHERE condition | DELETE FROM user WHERE id=1 |
| 更新 | UPDATE t SET c1=v1 WHERE condition | UPDATE user SET age=21 WHERE id=1 |
| 模糊查詢 | SELECT * FROM t WHERE c LIKE '%val%' | SELECT * FROM user WHERE name LIKE '%Tom%' |
| 排序 | SELECT * FROM t ORDER BY c1 [DESC], c2 | SELECT * FROM user ORDER BY age DESC, id |
SELECT COUNT(*) AS total FROM t;
SELECT SUM(col) AS sum_val FROM t;
SELECT AVG(col) AS avg_val FROM t;
SELECT MAX(col) AS max_val FROM t;
SELECT MIN(col) AS min_val FROM t;
CONCAT(str1, str2)、SUBSTRING(str, pos, len)、TRIM()、REPLACE()NOW()、CURDATE()、DATE_ADD(date, INTERVAL n DAY)、DATEDIFF(d1, d2)📌 下篇預告:多表連接、子查詢、事務控制、存儲過程/觸發器、權限管理、分區表、JSON 操作、Cte 遞歸查詢等進階語法。