開發與運維高頻使用的 MySQL SQL 語句彙總,涵蓋庫表結構查詢、DDL 變更、DML 操作、索引管理、權限控制,適合貼在工位牆上隨時查閱。
SHOW DATABASES;
USE db_name;
SHOW TABLES;
DESC tbl_name; -- 等同 SHOW COLUMNS FROM tbl_name
SHOW CREATE TABLE tbl_name;
SHOW INDEX FROM tbl_name;
-- 重命名表
ALTER TABLE old_name RENAME new_name;
-- 新增欄位
ALTER TABLE tbl_name ADD COLUMN col_name col_definition;
-- 刪除欄位
ALTER TABLE tbl_name DROP COLUMN col_name;
-- 修改欄位定義 (CHANGE 需指定舊名,MODIFY 僅改定義)
ALTER TABLE tbl_name CHANGE old_col new_col new_definition;
ALTER TABLE tbl_name MODIFY col_name new_definition;
-- 索引管理
ALTER TABLE tbl_name ADD INDEX idx_name (col1, col2);
ALTER TABLE tbl_name ADD UNIQUE uniq_idx (col_name);
ALTER TABLE tbl_name ADD PRIMARY KEY (col_name);
ALTER TABLE tbl_name DROP INDEX idx_name;
-- 插入
INSERT INTO tbl_name (col1, col2) VALUES ('val1', 123);
-- 更新
UPDATE tbl_name SET col1 = 'new' WHERE col2 = 3;
-- 刪除
DELETE FROM tbl_name WHERE condition;
-- 查詢去重
SELECT DISTINCT col1 FROM tbl_name;
DROP TABLE tbl_name;
DROP DATABASE db_name; -- 等同 mysql_drop_db()
-- 建立用戶並授權
GRANT SELECT, INSERT ON db.* TO 'user'@'host' IDENTIFIED BY 'pass';
-- 刪除授權
REVOKE ALL PRIVILEGES ON *.* FROM 'user'@'host';
DELETE FROM mysql.user WHERE User='user' AND Host='host';
FLUSH PRIVILEGES;
-- mysqldump 導出結構
mysqldump -d -u root -p db_name > schema.sql
-- mysqldump 導出資料
mysqldump -t -u root -p db_name > data.sql
-- 純文字檔導出 (配合 LOAD DATA)
mysqldump -T /tmp/export -u root -p db_name tbl_name
SELECT VERSION(), CURRENT_DATE;
收藏本表,日常開發運維不再翻文檔。