MySQL 是目前应用十分广泛的开源关系型数据库,熟练掌握常用命令,能够高效完成数据库连接、库表管理、数据增删改查、权限控制、事务处理等日常开发与运维工作。本文整理 MySQL 高频实用命令,分为基础操作、数据库操作、数据表操作、数据CRUD、索引管理、用户权限、事务管理几个模块,方便查阅与实践。
一、基础连接与通用命令
这一组命令主要用于登录数据库、切换环境、查看基础信息、退出会话,是操作 MySQL 的起点。
| 操作 | 命令 |
|---|---|
| 连接MySQL数据库 | mysql -u 用户名 -p |
| 查看全部数据库 | SHOW DATABASES; |
| 选定目标数据库 | USE 数据库名; |
| 查看库下所有数据表 | SHOW TABLES; |
| 查看表结构 | DESCRIBE 表名; / DESC 表名; |
| 查看当前登录用户 | SELECT USER(); |
| 退出MySQL客户端 | EXIT; |
提示:SQL语句末尾分号
;不可省略,代表一条语句结束。
二、数据库相关命令
针对数据库实例本身,实现创建、删除、修改编码、查看元信息等运维操作。
| 操作 | 命令 |
|---|---|
| 创建数据库 | CREATE DATABASE 数据库名; |
| 删除数据库 | DROP DATABASE 数据库名; |
| 修改数据库编码与排序规则 | ALTER DATABASE 数据库名 DEFAULT CHARACTER SET 编码格式 DEFAULT COLLATE 排序规则; |
| 查看数据库创建语句 | SHOW CREATE DATABASE 数据库名; |
| 查看数据库运行状态 | SHOW STATUS; |
| 查看错误信息 | SHOW ERRORS; |
| 查看警告信息 | SHOW WARNINGS; |
示例:创建使用utf8mb4编码的数据库
CREATE DATABASE test_db DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
三、数据表相关命令
数据表是存储业务数据的载体,包含建表、删表、修改字段、查看建表语句等操作。
3.1 表结构管理
| 操作 | 命令 |
|---|---|
| 创建数据表 | CREATE TABLE 表名 (列名1 数据类型 [约束], 列名2 数据类型 [约束], ...); |
| 删除数据表 | DROP TABLE 表名; |
| 查看表完整创建SQL | SHOW CREATE TABLE 表名; |
| 查看表统计状态信息 | SHOW TABLE STATUS LIKE '表名'; |
3.2 ALTER 修改表结构
ALTER TABLE是修改表的核心语句,可以新增、删除、修改、重命名字段。
| 操作 | 命令 |
|---|---|
| 新增字段 | ALTER TABLE 表名 ADD 列名 数据类型 [约束]; |
| 删除字段 | ALTER TABLE 表名 DROP 列名; |
| 修改字段数据类型与约束 | ALTER TABLE 表名 MODIFY 列名 数据类型 [约束]; |
| 重命名列+修改类型 | ALTER TABLE 表名 CHANGE 旧列名 新列名 数据类型 [约束]; |
简单建表演示:
CREATE TABLE student(
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
age INT
);
四、数据增删改查(CRUD)
日常开发中最高频的4类操作:插入、查询、更新、删除数据,执行更新、删除务必带上WHERE条件,避免全表误操作。
| 操作 | 命令 |
|---|---|
| 插入数据 | INSERT INTO 表名 (列1,列2,...) VALUES (值1,值2,...); |
| 查询全部列数据 | SELECT * FROM 表名; |
| 条件查询指定列 | SELECT 列1,列2 FROM 表名 WHERE 条件; |
| 更新数据 | UPDATE 表名 SET 列1=值1,列2=值2 WHERE 条件; |
| 删除行数据 | DELETE FROM 表名 WHERE 条件; |
示例:
-- 插入
INSERT INTO student(name,age) VALUES ('张三',18);
-- 查询
SELECT name,age FROM student WHERE age>16;
-- 更新
UPDATE student SET age=19 WHERE id=1;
-- 删除
DELETE FROM student WHERE id=1;
五、索引相关命令
索引用于提升查询效率,适合经常用于where、排序的字段;过多索引会降低写入性能。
| 操作 | 命令 |
|---|---|
| 查看表索引 | SHOW INDEX FROM 表名; |
| 创建普通索引 | CREATE INDEX 索引名 ON 表名(列名); |
| 删除索引 | DROP INDEX 索引名 ON 表名; |
六、用户与权限管理
多业务场景下,需要创建数据库账号、分配权限,控制不同用户访问范围,修改权限后要刷新权限使其生效。
| 操作 | 命令 |
|---|---|
| 创建用户 | CREATE USER '用户名'@'主机' IDENTIFIED BY '密码'; |
| 分配权限 | GRANT 权限 ON 数据库.* TO '用户名'@'主机'; |
| 刷新权限 | FLUSH PRIVILEGES; |
主机位置填
%代表允许任意远程访问;填localhost仅本地访问。
示例:
CREATE USER 'dev'@'%' IDENTIFIED BY '123456';
GRANT SELECT,INSERT,UPDATE ON test_db.* TO 'dev'@'%';
FLUSH PRIVILEGES;
七、事务相关命令
InnoDB存储引擎支持事务,事务保证一组SQL要么全部成功,要么全部失败,适合转账、订单等重要业务场景。
| 操作 | 命令 |
|---|---|
| 开启事务 | START TRANSACTION; 或者 BEGIN; |
| 提交事务(永久生效) | COMMIT; |
| 回滚事务(撤销所有修改) | ROLLBACK; |
| 设置事务隔离级别 | SET TRANSACTION ISOLATION LEVEL 隔离级别; |
| 表写锁 | LOCK TABLES 表名 WRITE; |
| 释放锁 | UNLOCK TABLES; |
| 查看InnoDB事务状态 | SHOW ENGINE INNODB STATUS; |
简单事务示例:
BEGIN;
UPDATE account SET balance=balance-100 WHERE id=1;
UPDATE account SET balance=balance+100 WHERE id=2;
COMMIT; -- 确认无误提交;出错则执行 ROLLBACK;
八、使用注意事项
DROP、DELETE属于高危命令,生产环境执行前建议备份,DELETE务必加WHERE条件;- 数据库、表、字段尽量使用
utf8mb4编码,完整支持emoji表情; - 事务只对InnoDB引擎生效,MyISAM不支持事务;
- 权限分配遵循最小权限原则,业务账号不要授予ALL全部权限。
总结
MySQL命令是数据库开发的基础,本文覆盖了连接登录、数据库、数据表、数据CRUD、索引、权限、事务等核心场景。实际开发中,结合业务合理使用SQL命令,同时做好备份、权限管控,能够保障数据库稳定安全运行。
0 条笔记