MySQL作为全球最受欢迎的开源关系型数据库管理系统,广泛应用于各类Web应用和企业级系统中,掌握MySQL常用命令是数据库管理员和开发者的必备技能,本文将详细解析MySQL的核心操作命令,涵盖登录退出、数据库操作、表管理、数据增删改查、用户权限及高级功能等场景,帮助读者系统化掌握MySQL的使用方法。

登录与退出数据库
MySQL客户端通过mysql
命令连接服务器,基础语法为mysql -h主机名 -u用户名 -p密码
,若连接本地服务器,可简化为mysql -u root -p
,回车后输入密码即可进入交互界面,退出数据库使用exit
、quit
或\q
命令,也可通过快捷键Ctrl+D
直接退出,对于需要指定端口的连接,可添加-P端口号
参数,如mysql -h 127.0.0.1 -u root -p -P 3306
。
数据库操作
数据库是存储表和数据的容器,常用操作包括创建、查看、选择和删除,创建数据库使用CREATE DATABASE 数据库名 [CHARSET=utf8mb4]
,其中utf8mb4
字符集支持完整的UTF-8编码,可存储emoji表情,查看所有数据库执行SHOW DATABASES;
,若需查看创建语句可使用SHOW CREATE DATABASE 数据库名;
,选择数据库通过USE 数据库名;
,后续操作将在此数据库下执行,删除数据库需谨慎,使用DROP DATABASE 数据库名;
会永久删除所有数据表及数据,建议先备份。
数据表管理
数据表是数据库的核心结构,涉及创建、修改、查看和删除等操作,创建表的基本语法为:
CREATE TABLE 表名 ( 字段名1 数据类型 [约束], 字段名2 数据类型 [约束], ... ) [ENGINE=InnoDB] [CHARSET=utf8mb4];
常用数据类型包括INT
(整数)、VARCHAR(n)
(变长字符串)、DATETIME
(日期时间)、TEXT
(长文本)等,常见约束有PRIMARY KEY
(主键)、NOT NULL
(非空)、UNIQUE
(唯一)、DEFAULT 默认值
等,查看当前数据库所有表使用SHOW TABLES;
,查看表结构执行DESC 表名;
或SHOW CREATE TABLE 表名;
,修改表结构可通过ALTER TABLE
命令,如添加列ALTER TABLE 表名 ADD COLUMN 新字段名 数据类型;
,修改列ALTER TABLE 表名 MODIFY COLUMN 字段名 新数据类型;
,删除列ALTER TABLE 表名 DROP COLUMN 字段名;
,删除表使用DROP TABLE 表名;
,若需判断表是否存在可添加IF EXISTS
选项避免报错。

数据增删改查(CRUD)
数据操作是数据库应用的核心,其中查询(SELECT)功能最为复杂,插入数据使用INSERT INTO 表名 (字段1,字段2) VALUES (值1,值2);
,若插入所有字段可省略字段列表,批量插入可使用INSERT INTO 表名 VALUES (值1,值2), (值3,值4);
语法,更新数据通过UPDATE 表名 SET 字段1=新值 WHERE 条件;
,务必添加WHERE条件否则将更新全表,删除数据使用DELETE FROM 表名 WHERE 条件;
,同样需要WHERE子句限制范围,若需清空表可使用TRUNCATE TABLE 表名;
,该操作会重置自增ID且效率高于DELETE。
查询数据(SELECT)语法灵活,基础结构为SELECT 字段列表 FROM 表名 WHERE 条件 GROUP BY 分组字段 HAVING 分组条件 ORDER BY 排序字段 LIMIT 记录数;
,其中WHERE
支持比较运算符(=,>,<)、逻辑运算符(AND,OR,NOT)及模糊查询(LIKE,配合%通配符);GROUP BY
常结合聚合函数(COUNT计数、SUM求和、AVG平均、MAX最大值、MIN最小值)使用;HAVING
用于过滤分组结果;ORDER BY
默认升序(ASC),降序需指定DESC
;LIMIT
可用于分页查询,如LIMIT 10,20
表示从第11条开始取20条记录。
用户与权限管理
MySQL通过用户账号和权限控制数据访问,创建用户使用CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';
,主机名可指定为localhost
(仅本地访问)或(任意主机),授权使用GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';
,权限列表如SELECT,INSERT,UPDATE
,若授权所有数据库可用,撤销权限执行REVOKE 权限 ON 数据库名.表名 FROM '用户名'@'主机';
,刷新权限使修改生效需运行FLUSH PRIVILEGES;
,查看用户权限使用SHOW GRANTS FOR '用户名'@'主机';
,删除用户则通过DROP USER '用户名'@'主机';
。
数据备份与恢复
数据备份是保障数据安全的重要手段,命令行备份使用mysqldump
工具,语法为mysqldump -u用户名 -p 数据库名 > 备份文件.sql
,备份所有数据库可添加--all-databases
参数,恢复数据需登录MySQL后执行source 备份文件路径;
,或直接通过命令行mysql -u用户名 -p 数据库名 < 备份文件.sql
导入,对于大型数据库,可使用--single-transaction
选项避免锁表,确保数据一致性。

常用函数与高级操作
MySQL内置丰富的函数支持数据处理,字符串函数如CONCAT()
拼接字符串、SUBSTRING()
截取子串、LENGTH()
获取长度;日期函数如NOW()
获取当前时间、DATE_FORMAT()
格式化日期、DATEDIFF()
计算日期差;数学函数如ROUND()
四舍五入、RAND()
生成随机数,高级操作包括事务处理(START TRANSACTION;
、COMMIT;
、ROLLBACK;
)、索引优化(CREATE INDEX 索引名 ON 表名(字段名);
)、外键约束(ALTER TABLE 子表 ADD CONSTRAINT 外键名 FOREIGN KEY(字段) REFERENCES 父表(字段);
)等,合理使用这些功能可显著提升数据库性能和数据完整性。
相关问答FAQs
Q1: 如何修改MySQL数据库的字符集?
A: 修改数据库字符集需使用ALTER DATABASE
命令,语法为ALTER DATABASE 数据库名 CHARACTER SET 字符集名 COLLATE 排序规则名;
,例如将字符集修改为utf8mb4
可执行ALTER DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
,若需修改表或字段的字符集,可分别使用ALTER TABLE 表名 CHARACTER SET ...
或ALTER TABLE 表名 MODIFY 字段名 字段类型 CHARACTER SET ...
。
Q2: MySQL中如何实现分页查询?
A: MySQL分页查询主要通过LIMIT
子句实现,基本语法为SELECT * FROM 表名 LIMIT 起始位置, 记录数;
,起始位置计算公式为(页码-1)*每页记录数
,例如查询第2页(每页10条)的数据可写为SELECT * FROM 表名 LIMIT 10,10;
,对于旧版本MySQL(5.7之前),若需优化分页性能,可结合WHERE
条件和ORDER BY
使用子查询或覆盖索引,避免扫描大量数据。