一、數據庫連接與退出
1.1 連接MySQL
sql
# 本地連接
mysql -u 用户名 -p
# 遠程連接
mysql -h 主機IP -u 用户名 -p
# 示例
mysql -u root -p
mysql -h 192.168.1.100 -u root -p
1.2 退出MySQL
sql
exit;
quit;
\q
1.3 查看MySQL版本
sql
SELECT VERSION();
mysql --version
二、數據庫操作
2.1 顯示數據庫列表
sql
SHOW DATABASES;
2.2 創建數據庫
sql
CREATE DATABASE 數據庫名;
CREATE DATABASE 數據庫名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2.3 刪除數據庫
sql
DROP DATABASE 數據庫名;
2.4 選擇/使用數據庫
sql
USE 數據庫名;
2.5 查看當前數據庫
sql
SELECT DATABASE();
三、數據表操作
3.1 顯示數據表
sql
# 顯示當前數據庫的所有表
SHOW TABLES;
# 顯示指定數據庫的所有表
SHOW TABLES FROM 數據庫名;
3.2 創建數據表
sql
CREATE TABLE 表名 (
字段1 數據類型 [約束條件],
字段2 數據類型 [約束條件],
...
[表級約束條件]
) [ENGINE=存儲引擎] [DEFAULT CHARSET=字符集];
# 示例
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
age INT DEFAULT 18,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3.3 查看錶結構
sql
# 詳細描述表結構
DESCRIBE 表名;
DESC 表名;
# 顯示建表語句
SHOW CREATE TABLE 表名;
3.4 修改表結構
sql
# 添加字段
ALTER TABLE 表名 ADD 列名 數據類型 [約束條件];
# 修改字段
ALTER TABLE 表名 MODIFY 列名 新數據類型 [約束條件];
ALTER TABLE 表名 CHANGE 舊列名 新列名 新數據類型;
# 刪除字段
ALTER TABLE 表名 DROP 列名;
# 重命名錶
ALTER TABLE 舊錶名 RENAME TO 新表名;
RENAME TABLE 舊錶名 TO 新表名;
3.5 刪除數據表
sql
# 刪除表
DROP TABLE 表名;
# 清空表數據(保留表結構)
TRUNCATE TABLE 表名;
四、數據操作(CRUD)
4.1 插入數據
sql
# 插入完整行
INSERT INTO 表名 VALUES (值1, 值2, ...);
# 插入指定列
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
# 插入多行
INSERT INTO 表名 (列1, 列2, ...) VALUES
(值1, 值2, ...),
(值1, 值2, ...),
(值1, 值2, ...);
4.2 查詢數據
sql
# 查詢所有列
SELECT * FROM 表名;
# 查詢指定列
SELECT 列1, 列2, ... FROM 表名;
# 帶條件查詢
SELECT * FROM 表名 WHERE 條件;
# 排序查詢
SELECT * FROM 表名 ORDER BY 列名 [ASC|DESC];
# 限制查詢結果
SELECT * FROM 表名 LIMIT 數量;
SELECT * FROM 表名 LIMIT 起始位置, 數量;
# 去重查詢
SELECT DISTINCT 列名 FROM 表名;
# 聚合查詢
SELECT COUNT(*) FROM 表名;
SELECT SUM(列名) FROM 表名;
SELECT AVG(列名) FROM 表名;
SELECT MAX(列名) FROM 表名;
SELECT MIN(列名) FROM 表名;
# 分組查詢
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING 條件;
4.3 更新數據
sql
UPDATE 表名 SET 列1=值1, 列2=值2 WHERE 條件;
# 示例
UPDATE users SET age=20 WHERE username='張三';
4.4 刪除數據
sql
DELETE FROM 表名 WHERE 條件;
# 刪除所有數據(危險操作)
DELETE FROM 表名;
五、索引操作
5.1 創建索引
sql
# 創建普通索引
CREATE INDEX 索引名 ON 表名(列名);
# 創建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名(列名);
# 創建複合索引
CREATE INDEX 索引名 ON 表名(列1, 列2);
5.2 刪除索引
sql
DROP INDEX 索引名 ON 表名;
ALTER TABLE 表名 DROP INDEX 索引名;
5.3 查看索引
sql
SHOW INDEX FROM 表名;
六、用户與權限管理
6.1 創建用户
sql
CREATE USER '用户名'@'主機' IDENTIFIED BY '密碼';
# 示例
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password123';
CREATE USER 'testuser'@'%' IDENTIFIED BY 'password123';
6.2 修改用户密碼
sql
# MySQL 5.7及以前
SET PASSWORD FOR '用户名'@'主機' = PASSWORD('新密碼');
# MySQL 8.0+
ALTER USER '用户名'@'主機' IDENTIFIED BY '新密碼';
6.3 授予權限
sql
GRANT 權限類型 ON 數據庫.表 TO '用户名'@'主機';
# 示例
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'testuser'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
6.4 撤銷權限
sql
REVOKE 權限類型 ON 數據庫.表 FROM '用户名'@'主機';
6.5 查看權限
sql
SHOW GRANTS FOR '用户名'@'主機';
6.6 刪除用户
sql
DROP USER '用户名'@'主機';
七、數據導入導出
7.1 導出數據
bash
# 導出整個數據庫
mysqldump -u 用户名 -p 數據庫名 > 備份文件.sql
# 導出指定表
mysqldump -u 用户名 -p 數據庫名 表名 > 備份文件.sql
# 示例
mysqldump -u root -p mydb > mydb_backup.sql
7.2 導入數據
bash
# 方法1:使用mysql命令
mysql -u 用户名 -p 數據庫名 < 備份文件.sql
# 方法2:在MySQL命令行中
mysql> USE 數據庫名;
mysql> SOURCE 備份文件路徑;
7.3 導入文本數據
sql
LOAD DATA LOCAL INFILE '文件路徑'
INTO TABLE 表名
FIELDS TERMINATED BY '分隔符'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS; -- 忽略第一行(標題行)
八、事務操作
8.1 事務控制
sql
# 開啓事務
START TRANSACTION;
BEGIN;
# 提交事務
COMMIT;
# 回滾事務
ROLLBACK;
# 設置自動提交
SET AUTOCOMMIT = 0; -- 關閉自動提交
SET AUTOCOMMIT = 1; -- 開啓自動提交
8.2 保存點
sql
SAVEPOINT 保存點名稱;
ROLLBACK TO 保存點名稱;
RELEASE SAVEPOINT 保存點名稱;
九、視圖操作
9.1 創建視圖
sql
CREATE VIEW 視圖名 AS
SELECT 語句;
9.2 使用視圖
sql
SELECT * FROM 視圖名 WHERE 條件;
9.3 刪除視圖
sql
DROP VIEW 視圖名;
十、存儲過程與函數
10.1 創建存儲過程
sql
DELIMITER $$
CREATE PROCEDURE 過程名(參數列表)
BEGIN
-- SQL語句
END $$
DELIMITER ;
10.2 調用存儲過程
sql
CALL 過程名(參數);
10.3 刪除存儲過程
sql
DROP PROCEDURE 過程名;
十一、系統信息查詢
11.1 查看系統狀態
sql
SHOW STATUS;
SHOW VARIABLES;
SHOW PROCESSLIST;
11.2 查看錶狀態
sql
SHOW TABLE STATUS FROM 數據庫名;
11.3 查看引擎信息
sql
SHOW ENGINES;
SHOW TABLE STATUS WHERE Name='表名'\G
十二、實用技巧
12.1 執行SQL文件
sql
SOURCE /path/to/file.sql;
12.2 查看警告信息
sql
SHOW WARNINGS;
12.3 查詢執行計劃
sql
EXPLAIN SELECT 語句;
12.4 強制使用索引
sql
SELECT * FROM 表名 FORCE INDEX(索引名) WHERE 條件;
12.5 查看連接信息
sql
SHOW FULL PROCESSLIST;
十三、Windows服務管理
13.1 啓動/停止MySQL服務
cmd
# 啓動
net start mysql
# 停止
net stop mysql
# 重啓
net stop mysql
net start mysql
13.2 圖形界面管理
cmd
# 打開服務管理器
services.msc
十四、常用快捷鍵(MySQL命令行)
14.1 編輯快捷鍵
Ctrl + A:移動到行首Ctrl + E:移動到行尾Ctrl + U:刪除整行Ctrl + K:刪除到行尾Ctrl + W:刪除前一個單詞
14.2 命令歷史
↑或↓:瀏覽歷史命令Ctrl + R:搜索歷史命令