MySQL命令行是数据库管理中不可或缺的工具,通过它可以高效地执行数据库操作、管理用户权限、优化查询等,以下从基础操作、数据库管理、表操作、数据操作、用户与权限管理、高级功能等方面详细介绍MySQL命令行的常用命令及使用方法。

基础操作与连接
-
连接MySQL服务器
mysql -h主机名 -u用户名 -p密码
若本地连接且用户为root,可简化为
mysql -u root -p
,输入密码后进入命令行界面。 -
退出MySQL
exit; 或 quit;
-
显示当前时间
(图片来源网络,侵删)SELECT NOW();
-
切换数据库
USE 数据库名;
数据库管理
-
创建数据库
CREATE DATABASE 数据库名 [CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci];
示例:创建名为
test_db
的数据库,指定字符集为utf8mb4。 -
查看所有数据库
(图片来源网络,侵删)SHOW DATABASES;
-
删除数据库
DROP DATABASE 数据库名;
-
修改数据库字符集
ALTER DATABASE 数据库名 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
表操作
-
创建表
CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], PRIMARY KEY (主键列名) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
示例:创建
users
表,包含id
(自增主键)、name
(varchar)、age
(int)字段。 -
查看所有表
SHOW TABLES;
-
查看表结构
DESCRIBE 表名; 或 SHOW COLUMNS FROM 表名;
-
修改表结构
- 添加列:
ALTER TABLE 表名 ADD COLUMN 列名 数据类型 [约束];
- 修改列类型:
ALTER TABLE 表名 MODIFY COLUMN 列名 新数据类型;
- 删除列:
ALTER TABLE 表名 DROP COLUMN 列名;
- 添加列:
-
删除表
DROP TABLE 表名;
数据操作(增删改查)
-
插入数据
INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);
若插入所有列,可省略列名:
INSERT INTO 表名 VALUES (值1, 值2);
-
查询数据
- 基础查询:
SELECT * FROM 表名;
- 条件查询:
SELECT * FROM 表名 WHERE 条件;
- 排序与分页:
SELECT * FROM 表名 ORDER BY 列名 [ASC/DESC] LIMIT 起始位置, 记录数;
- 基础查询:
-
更新数据
UPDATE 表名 SET 列名1=新值1 WHERE 条件;
-
删除数据
DELETE FROM 表名 WHERE 条件;
用户与权限管理
-
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
示例:
CREATE USER 'test_user'@'localhost' IDENTIFIED BY '123456';
-
授权
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
示例:授予
test_user
对test_db
库所有表的查询权限:GRANT SELECT ON test_db.* TO 'test_user'@'localhost';
-
刷新权限
FLUSH PRIVILEGES;
-
撤销权限
REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';
-
删除用户
DROP USER '用户名'@'主机';
高级功能
-
备份与恢复
- 备份数据库(命令行):
mysqldump -u用户名 -p密码 数据库名 > 备份文件.sql
- 恢复数据库:
mysql -u用户名 -p密码 数据库名 < 备份文件.sql
- 备份数据库(命令行):
-
查询执行计划
EXPLAIN SELECT * FROM 表名 WHERE 条件;
-
事务处理
START TRANSACTION; -- 开始事务 -- 执行SQL语句 COMMIT; -- 提交事务 -- 或 ROLLBACK; -- 回滚事务
-
索引管理
- 创建索引:
CREATE INDEX 索引名 ON 表名(列名);
- 删除索引:
DROP INDEX 索引名 ON 表名;
- 创建索引:
常用命令速查表
功能分类 | 命令示例 |
---|---|
连接与退出 | mysql -u root -p ;exit; |
数据库操作 | CREATE DATABASE db; ;SHOW DATABASES; ;DROP DATABASE db; |
表操作 | CREATE TABLE t (id INT); ;DESC t; ;ALTER TABLE t ADD COLUMN name VARCHAR(20); |
数据查询 | SELECT * FROM t WHERE id=1; ;SELECT * FROM t ORDER BY id LIMIT 10; |
数据修改 | UPDATE t SET name='Tom' WHERE id=1; ;DELETE FROM t WHERE id=1; |
用户与权限 | CREATE USER 'u'@'%' IDENTIFIED BY 'pwd'; ;GRANT SELECT ON db.* TO 'u'@'%'; |
备份与恢复 | mysqldump -u root -p db > backup.sql ;mysql -u root -p db < backup.sql |
相关问答FAQs
Q1: 如何在MySQL命令行中执行SQL脚本文件?
A1: 使用source
命令或mysql
命令行参数,在MySQL命令行中执行:
source /path/to/script.sql;
或直接在命令行执行:
mysql -u用户名 -p密码 数据库名 < /path/to/script.sql
Q2: 如何查看MySQL的版本和当前时间?
A2: 在MySQL命令行中执行以下命令:
SELECT VERSION(); -- 查看MySQL版本 SELECT NOW(); -- 查看当前服务器时间
也可通过命令行参数查看版本:mysql --version
或mysqld --version
。