一、數據庫連接與退出

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:搜索歷史命令