MySQL 是一款广泛使用的关系型数据库管理系统,掌握其命令行工具对于数据库管理和开发至关重要,MySQL 命令帮助文档提供了丰富的信息和示例,能够帮助用户快速理解和使用各种命令,以下将从基础命令、数据操作、用户权限管理、性能优化工具等方面详细介绍 MySQL 命令帮助的核心内容,并结合实际场景说明其应用方法。

基础连接与退出命令
要使用 MySQL 命令行工具,首先需要连接到 MySQL 服务器,通过 mysql 命令可以建立连接,基本语法为:
mysql [选项] [数据库名] [用户名]
常用选项包括:
-h:指定服务器主机名,默认为localhost。-P:指定端口号,默认为3306。-u:指定用户名。-p:提示输入密码,避免在命令行中直接暴露密码。-e:直接执行 SQL 语句并退出,适合脚本自动化。
连接到本地 MySQL 服务器的 test 数据库:
mysql -u root -p test
连接成功后,会显示 MySQL 提示符 mysql>,此时可以输入 SQL 命令,退出 MySQL 使用 exit; 或 quit; 命令,也可以使用快捷键 Ctrl+D。

数据库操作命令
MySQL 命令帮助中,数据库管理是基础部分,主要包括创建、查看、选择和删除数据库。
-
创建数据库
使用CREATE DATABASE语句,语法为:CREATE DATABASE 数据库名 [CHARACTER SET 字符集] [COLLATE 排序规则];
创建一个使用
utf8mb4字符集的数据库:CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
查看数据库
SHOW DATABASES;列出所有数据库,SHOW CREATE DATABASE 数据库名;显示数据库的创建语句,包括字符集和排序规则。
(图片来源网络,侵删) -
选择数据库
使用USE 数据库名;切换到指定数据库,后续操作将在此数据库上执行。 -
删除数据库
DROP DATABASE 数据库名;会永久删除数据库及其所有表,需谨慎使用。
数据表操作命令
数据表是数据库的核心组件,MySQL 提供了完整的表管理命令。
-
创建表
基本语法为:CREATE TABLE 表名 ( 列名1 数据类型 [约束], 列名2 数据类型 [约束], ... ) [表选项];常用约束包括
PRIMARY KEY(主键)、NOT NULL(非空)、UNIQUE(唯一)、DEFAULT(默认值)等。CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -
查看表结构
SHOW TABLES;列出当前数据库的所有表,DESC 表名;或SHOW COLUMNS FROM 表名;显示表的列结构。 -
修改表
使用ALTER TABLE可以添加、修改或删除列,ALTER TABLE users ADD COLUMN age INT DEFAULT 0; ALTER TABLE users MODIFY COLUMN email VARCHAR(150); ALTER TABLE users DROP COLUMN age;
-
删除表
DROP TABLE 表名;删除表及其数据,DROP TABLE IF EXISTS 表名;可避免表不存在时报错。
数据操作命令(CRUD)
数据增删改查(CRUD)是数据库日常操作的核心。
-
插入数据(INSERT)
基本语法:INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
可一次插入多行数据:
INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com'), ('user2', 'user2@example.com'); -
查询数据(SELECT)
最常用的查询命令,支持复杂条件筛选和聚合计算:SELECT 列名1, 列名2 FROM 表名 WHERE 条件 GROUP BY 分组列 HAVING 筛选条件 ORDER BY 排序列 LIMIT 数量;
查询年龄大于 18 的用户并按注册时间降序排列:
SELECT username, email FROM users WHERE age > 18 ORDER BY created_at DESC LIMIT 10;
-
更新数据(UPDATE)
语法:UPDATE 表名 SET 列1=新值1, 列2=新值2 WHERE 条件;
注意:
WHERE子句至关重要,否则会更新全表数据。 -
删除数据(DELETE)
语法:DELETE FROM 表名 WHERE 条件;
同样需谨慎使用
WHERE子句,避免误删数据。
用户与权限管理
MySQL 的安全依赖于严格的权限控制,相关命令如下:
-
创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
创建允许从任何主机连接的用户:
CREATE USER 'admin'@'%' IDENTIFIED BY 'password123';
-
授权
使用GRANT语句分配权限,语法为:GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
授予
admin用户对所有数据库的查询和插入权限:GRANT SELECT, INSERT ON *.* TO 'admin'@'%';
-
刷新权限
修改权限后需执行FLUSH PRIVILEGES;使权限生效。 -
撤销权限
使用REVOKE语句,语法与GRANT类似,但用于收回权限。
性能优化与维护命令
MySQL 提供了多种工具和命令帮助优化性能和维护数据库。
-
索引管理
索引可显著提高查询速度,创建索引的命令为:CREATE INDEX 索引名 ON 表名 (列名);
查看索引使用情况:
EXPLAIN SELECT * FROM 表名 WHERE 条件;
-
分析表与优化表
定期执行ANALYZE TABLE 表名;更新表的统计信息,OPTIMIZE TABLE 表名;可回收碎片空间,提高性能。 -
备份与恢复
使用mysqldump工具备份数据库:mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
恢复数据库:
mysql -u 用户名 -p 数据库名 < 备份文件.sql
常用函数与操作符
MySQL 提供了丰富的内置函数,涵盖字符串、数值、日期等类型处理。
- 字符串函数:
CONCAT()(连接字符串)、SUBSTRING()(截取子串)。 - 数值函数:
ROUND()(四舍五入)、ABS()(绝对值)。 - 日期函数:
NOW()(当前时间)、DATE_FORMAT()(格式化日期)。
操作符包括比较运算符(、>、LIKE)、逻辑运算符(AND、OR、NOT)等,用于构建复杂查询条件。
事务控制
事务确保数据操作的原子性,常用命令包括:
START TRANSACTION;或BEGIN;:开始事务。COMMIT;:提交事务,永久保存更改。ROLLBACK;:回滚事务,撤销未提交的更改。
START TRANSACTION; UPDATE accounts SET balance = balance - 100 WHERE user_id = 1; UPDATE accounts SET balance = balance + 100 WHERE user_id = 2; COMMIT;
相关问答 FAQs
问题 1:如何忘记 MySQL root 密码?
解答:如果忘记 root 密码,可通过以下步骤重置:
- 停止 MySQL 服务:
sudo systemctl stop mysql(Linux)或通过任务管理器停止(Windows)。 - 以安全模式启动 MySQL:
sudo mysqld_safe --skip-grant-tables &。 - 无密码登录 MySQL:
mysql -u root。 - 执行以下命令更新密码(注意替换 'new_password'):
USE mysql; UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root'; FLUSH PRIVILEGES; EXIT; - 重启 MySQL 服务,使用新密码登录。
问题 2:如何查看 MySQL 的版本和当前状态?
解答:
- 查看 MySQL 版本:在命令行中执行
mysql --version或登录 MySQL 后执行SELECT VERSION();。 - 查看当前状态:登录 MySQL 后执行
SHOW STATUS;显示服务器状态变量,或SHOW VARIABLES;查看配置参数,查看当前连接数:SHOW STATUS LIKE 'Threads_connected';
