| 操作 | 命令 | 備註 |
|---|---|---|
| 登入 | mysql -u root -p | 回車後輸入密碼 |
| 顯示所有庫 | SHOW DATABASES; | |
| 切換庫 | USE db_name; | 少數可省分號 |
| 建庫 | CREATE DATABASE db_name [CHARSET utf8mb4]; | 建議顯式指定字符集 |
| 刪庫 | DROP DATABASE db_name; | 不可逆,慎用 |
| 操作 | 命令 | 備註 |
|---|---|---|
| 顯示所有表 | SHOW TABLES; | |
| 表結構 | DESC tbl_name; / SHOW COLUMNS FROM tbl_name; | |
| 建表語句 | SHOW CREATE TABLE tbl_name; | 含索引、引擎、字符集 |
| 建表 | CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(20) NOT NULL) ENGINE=InnoDB; | 主鍵必填 |
| 刪表 | DROP TABLE tbl_name; | 結構+數據全刪 |
| 清空表 | TRUNCATE TABLE tbl_name; | 保留結構、重置自增、不可回滾 |
| 刪除數據 | DELETE FROM tbl_name WHERE ...; | 可回滾、不重置自增 |
| 加列 | ALTER TABLE t ADD col INT; | |
| 刪列 | ALTER TABLE t DROP COLUMN col; | |
| 改列 | ALTER TABLE t CHANGE old_col new_col INT; |
| 操作 | 命令 | 備註 |
|---|---|---|
| 插入 (全列) | INSERT INTO t VALUES (1, 'Alice'); | 順序必須與建表一致 |
| 插入 (指定列) | INSERT INTO t (name) VALUES ('Bob'); | 其餘列用默認值/NULL |
| 查詢 (全列) | SELECT * FROM t; | |
| 查詢 (指定列) | SELECT id, name FROM t; | |
| 條件查詢 | SELECT * FROM t WHERE id = 1; | |
| 更新 | UPDATE t SET name = 'Alice2' WHERE id = 1; | |
| 刪除 | DELETE FROM t WHERE id = 1; |
| 操作 | 命令 | 備註 |
|---|---|---|
| 查看所有用戶 | SELECT User, Host FROM mysql.user; | |
| 查看當前用戶 | SELECT USER(); | |
| 建用戶 | CREATE USER 'app'@'%' IDENTIFIED BY 'StrongPass123!'; | |
| 授權 (全庫全表) | GRANT ALL PRIVILEGES ON *.* TO 'app'@'%' WITH GRANT OPTION; | 生產慎用 |
| 授權 (單庫) | GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'app'@'%'; | 最小權限原則 |
| 授權 (單表) | GRANT SELECT ON mydb.t TO 'app'@'%'; | |
| 撤銷權限 | REVOKE INSERT ON mydb.* FROM 'app'@'%'; | |
| 刷新權限 | FLUSH PRIVILEGES; | 修改 mysql.user 表後必須 |
| 改密碼 (5.7+) | ALTER USER 'app'@'%' IDENTIFIED BY 'NewPass123!'; | |
| 改密碼 (通用) | SET PASSWORD FOR 'app'@'%' = PASSWORD('NewPass123!'); | |
| 刪用戶 | DROP USER 'app'@'%'; |
GLOBAL (*.*) → DATABASE (db.*) → TABLE (db.tbl) → COLUMN → ROUTINE/PROXY 權限遞減,子層級可覆蓋父層級