資料庫備份與還原
匯出整庫
mysqldump -u username -p --default-character-set=utf8mb4 dbname > backup.sql
匯出單表
mysqldump -u username -p dbname tablename > table_backup.sql
匯出結構 (不含資料)
mysqldump -u username -p -d --add-drop-table dbname > structure.sql
匯入資料
# 方法 1: SOURCE 指令 (需先進入 mysql)
mysql> USE dbname;
mysql> SOURCE backup.sql;
# 方法 2: 管道導入
mysql -u username -p dbname < backup.sql
# 方法 3: 指定資料庫參數
mysql -u username -p -D dbname < backup.sql
基礎操作命令
啟動與退出
# 進入
mysql -u root -p
# 退出
quit / exit
資料庫操作
CREATE DATABASE dbname;
SHOW DATABASES;
DROP DATABASE dbname;
USE dbname;
SELECT DATABASE(); -- 查看當前庫
SHOW TABLES; -- 查看當前庫所有表
資料表操作
-- 建表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- 查看結構
DESC users;
SHOW COLUMNS FROM users;
-- 刪表
DROP TABLE users;
-- 新增欄位
ALTER TABLE users ADD COLUMN phone VARCHAR(20);
-- 修改欄位
ALTER TABLE users MODIFY COLUMN name VARCHAR(100);
-- 刪除欄位
ALTER TABLE users DROP COLUMN phone;
-- 重命名表
RENAME TABLE users TO members;
資料操作 (DML)
-- 插入
INSERT INTO users (name, email) VALUES ('Tom', 'tom@example.com');
-- 查詢
SELECT * FROM users;
SELECT * FROM users ORDER BY id LIMIT 10;
-- 更新
UPDATE users SET name = 'Jerry' WHERE id = 1;
-- 刪除
DELETE FROM users WHERE id = 1;
TRUNCATE TABLE users; -- 快速清空表
使用者與權限管理
-- 建立用戶
CREATE USER 'app_user'@'%' IDENTIFIED BY 'strong_password';
-- 授權
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'%';
GRANT ALL PRIVILEGES ON mydb.* TO 'admin'@'%' WITH GRANT OPTION;
-- 刷新權限
FLUSH PRIVILEGES;
-- 查看權限
SHOW GRANTS FOR 'app_user'@'%';
-- 回收權限
REVOKE INSERT ON mydb.* FROM 'app_user'@'%';
-- 刪除用戶
DROP USER 'app_user'@'%';
常用系統函數
- 字串:CONCAT(), SUBSTRING(), REPLACE(), TRIM(), UPPER()/LOWER()
- 日期:NOW(), DATE(), DATE_ADD(), DATEDIFF(), DATE_FORMAT()
- 數學:ROUND(), CEIL(), FLOOR(), RAND(), ABS()
- 流程控制:IF(), CASE WHEN, COALESCE(), NULLIF()
效能分析命令
EXPLAIN SELECT * FROM users WHERE email = 'test@example.com';
SHOW INDEX FROM users;
ANALYZE TABLE users;
OPTIMIZE TABLE users;