50 條 MySQL 常用命令匯總,入門(mén)必學(xué)!
MySQL命令是很多的,如果全面列出的話,篇幅較長(zhǎng),我在這里面只是羅列了一些常用的,供大家參考。

1. 登錄與退出
(1) 登錄 MySQL
mysql [OPTIONS]
mysql -uroot -p選項(xiàng) | 說(shuō)明 | 示例 |
-u | 指定用戶(hù)名 | -u root |
-p | 提示輸入密碼(密碼可跟在后面但不安全) | -p1234 或 -p |
-h | 指定主機(jī)名(默認(rèn) localhost) | -h 192.168.1.100 |
-P | 指定端口(默認(rèn) 3306) | -P 3307 |
--ssl | 啟用 SSL 安全連接 | --ssl |
--socket | 指定套接字文件 | --socket=/tmp/mysql.sock |
--database | 登錄后直接使用指定數(shù)據(jù)庫(kù) | --database=testdb |
(2) 退出 MySQL
SQL> exit;或:
SQL> quit;2. 數(shù)據(jù)庫(kù)管理
(1) 查看數(shù)據(jù)庫(kù)列表
show databases;(2) 創(chuàng)建數(shù)據(jù)庫(kù)
CREATE DATABASE 數(shù)據(jù)庫(kù)名 [OPTIONS];
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;選項(xiàng) | 說(shuō)明 | 示例 |
DEFAULT CHARACTER SET | 設(shè)置數(shù)據(jù)庫(kù)的默認(rèn)字符集 | DEFAULT CHARACTER SET utf8mb4 |
DEFAULT COLLATE | 設(shè)置數(shù)據(jù)庫(kù)的排序規(guī)則(與字符集匹配) | DEFAULT COLLATE utf8mb4_general_ci |
(3) 刪除數(shù)據(jù)庫(kù)
drop databases 數(shù)據(jù)庫(kù)名;(4) 使用指定數(shù)據(jù)庫(kù)
USE 數(shù)據(jù)庫(kù)名;
use mysql;(5) 查看當(dāng)前使用的數(shù)據(jù)庫(kù)
SELECT DATABASE();(66) 查看數(shù)據(jù)庫(kù)大小
SELECT table_schema AS 數(shù)據(jù)庫(kù)名,
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 大小_MB
FROM information_schema.tables
GROUP BY table_schema;3. 表管理
(1) 查看當(dāng)前數(shù)據(jù)庫(kù)的所有表
SHOW TABLES;(2) 查看表結(jié)構(gòu)
DESC 表名;或:
SHOW COLUMNS FROM 表名;(3) 創(chuàng)建表
CREATE TABLE 表名 (
列名 數(shù)據(jù)類(lèi)型 [約束條件],
...
) [OPTIONS];
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;選項(xiàng) | 說(shuō)明 | 示例 |
ENGINE | 設(shè)置存儲(chǔ)引擎(如 InnoDB、MyISAM) | ENGINE=InnoDB |
DEFAULT CHARSET | 設(shè)置表的默認(rèn)字符集 | DEFAULT CHARSET=utf8mb4 |
AUTO_INCREMENT | 指定自增主鍵 | id INT AUTO_INCREMENT PRIMARY KEY |
(4) 查看表的創(chuàng)建語(yǔ)句
SHOW CREATE TABLE 表名;(5) 修改表結(jié)構(gòu)
添加列:
ALTER TABLE 表名 ADD 列名 數(shù)據(jù)類(lèi)型 [位置];位置:FIRST(在最前),AFTER 列名(在指定列后)。
修改列:
ALTER TABLE 表名 MODIFY 列名 數(shù)據(jù)類(lèi)型;刪除列:
ALTER TABLE 表名 DROP 列名;重命名列:
ALTER TABLE 表名 CHANGE 原列名 新列名 數(shù)據(jù)類(lèi)型;(6) 刪除表
DROP TABLE 表名;(7) 清空表(保留結(jié)構(gòu))
TRUNCATE TABLE 表名;4. 數(shù)據(jù)操作
(1) 插入數(shù)
INSERT INTO 表名 (列名1, 列名2, ...) VALUES (值1, 值2, ...);
INSERT INTO users (name, email) VALUES ('Alice', 'liyb@example.com');(2) 批量插入
INSERT INTO 表名 (列名1, 列名2) VALUES
(值1, 值2),
(值3, 值4),
(值5, 值6);(3) 查詢(xún)數(shù)
SELECT 列名1, 列名2, ... FROM 表名 [WHERE 條件] [ORDER BY 列名 ASC|DESC] [LIMIT 偏移量, 行數(shù)];
SELECT * FROM users WHERE email LIKE '%example.com' ORDER BY created_at DESC LIMIT 10;常用子句:
子句 | 說(shuō)明 | 示例 |
WHERE | 指定條件 | WHERE age > 30 |
ORDER BY | 排序結(jié)果集 | ORDER BY name ASC |
LIMIT | 限制返回行數(shù),支持偏移量 | LIMIT 5 OFFSET 10 |
GROUP BY | 按列分組 | GROUP BY department |
HAVING | 篩選分組結(jié)果 | HAVING COUNT(*) > 1 |
(4) 更新數(shù)據(jù)
UPDATE 表名 SET 列名1=值1, 列名2=值2 WHERE 條件;示例:
UPDATE users SET email='new_email@example.com' WHERE name='Alice';(5) 刪除數(shù)據(jù)
DELETE FROM 表名 WHERE 條件;
DELETE FROM users WHERE id=10;5. 用戶(hù)管理
(1) 創(chuàng)建用戶(hù)
CREATE USER '用戶(hù)名'@'主機(jī)' IDENTIFIED BY '密碼';
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'mypassword';參數(shù) | 說(shuō)明 | 示例 |
'用戶(hù)名' | 用戶(hù)名 | 'testuser' |
'主機(jī)' | 用戶(hù)允許訪問(wèn)的主機(jī)(% 表示任意主機(jī)) | 'localhost' 或 '%' |
'密碼' | 用戶(hù)密碼 | 'password123' |
(2) 修改用戶(hù)密碼
ALTER USER '用戶(hù)名'@'主機(jī)' IDENTIFIED BY '新密碼';
ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'newpassword123';(3) 刪除用戶(hù)
DROP USER '用戶(hù)名'@'主機(jī)';(4) 授予權(quán)限
GRANT 權(quán)限列表 ON 數(shù)據(jù)庫(kù).表 TO '用戶(hù)名'@'主機(jī)';權(quán)限 | 說(shuō)明 |
ALL PRIVILEGES | 授予所有權(quán)限 |
SELECT | 允許讀取表中的數(shù)據(jù) |
INSERT | 允許向表中插入數(shù)據(jù) |
UPDATE | 允許修改表中的數(shù)據(jù) |
DELETE | 允許刪除表中的數(shù)據(jù) |
CREATE | 允許創(chuàng)建數(shù)據(jù)庫(kù)和表 |
DROP | 允許刪除數(shù)據(jù)庫(kù)和表 |
GRANT SELECT, INSERT ON mydb.* TO 'testuser'@'localhost';(5) 撤銷(xiāo)權(quán)限
REVOKE 權(quán)限列表 ON 數(shù)據(jù)庫(kù).表 FROM '用戶(hù)名'@'主機(jī)';
REVOKE INSERT ON mydb.* FROM 'testuser'@'localhost';(6) 刷新權(quán)限
FLUSH PRIVILEGES;6. 性能優(yōu)化
(1) 查看查詢(xún)執(zhí)行計(jì)劃
EXPLAIN SELECT 查詢(xún)語(yǔ)句;EXPLAIN SELECT * FROM users WHERE email='test@example.com';(2) 優(yōu)化表
OPTIMIZE TABLE 表名;(3) 查看慢查詢(xún)
SHOW VARIABLES LIKE 'slow_query_log';(4) 啟用慢查詢(xún):
SET GLOBAL slow_query_log=1;(5) 檢查表
CHECK TABLE 表名;(6) 修復(fù)表
REPAIR TABLE 表名;





















