自学教程

MySQL 命令大全

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 表名;
查看表完整创建SQLSHOW 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;

八、使用注意事项

  1. DROP、DELETE属于高危命令,生产环境执行前建议备份,DELETE务必加WHERE条件;
  2. 数据库、表、字段尽量使用utf8mb4编码,完整支持emoji表情;
  3. 事务只对InnoDB引擎生效,MyISAM不支持事务;
  4. 权限分配遵循最小权限原则,业务账号不要授予ALL全部权限。

总结

MySQL命令是数据库开发的基础,本文覆盖了连接登录、数据库、数据表、数据CRUD、索引、权限、事务等核心场景。实际开发中,结合业务合理使用SQL命令,同时做好备份、权限管控,能够保障数据库稳定安全运行。

标签:

0 条笔记