MySQL|库操作
- 游戏开发
- 2025-08-27 10:15:02

文章目录 MySQL数据库基础操作详解一、创建数据库1.1 基本语法1.2 创建示例 二、字符集与校对规则2.1 查看系统默认配置2.2 查看支持的字符集与校对规则2.3 校对规则的实际影响示例1:不区分大小写(`utf8mb4_general_ci`)示例2:区分大小写(`utf8mb4_bin`)排序对比 三、数据库的日常操作3.1 查看所有数据库 / 查看当前数据库3.2 显示数据库的创建语句3.3 修改数据库3.4 删除数据库 四、备份与恢复4.1 备份数据库4.2 恢复数据库 五、查看数据库连接 MySQL数据库基础操作详解
数据库是存储和管理数据的核心组件,掌握数据库的基本操作是每个开发者的必备技能。本文以MySQL为例,详细介绍数据库的创建、字符集设置、校验规则、日常维护及备份恢复等操作,帮助读者轻松上手并深入理解MySQL数据库的管理技巧。
一、创建数据库 1.1 基本语法
使用 create database 命令创建数据库,语法如下:
create database [if not exists] 数据库名 [default character set 字符集名称] [default collate 校对规则名称]; 关键字说明: if not exists:可选,避免重复创建同名数据库时报错。character set:指定数据库的字符集(如 utf8mb4、gbk)。字符集决定数据库支持的语言和符号。collate:指定校对规则(如 utf8mb4_general_ci)。校对规则影响字符串比较和排序的方式。注意:MySQL关键字(如 create、database)不区分大小写,但建议统一风格。例如,关键字小写,数据库名按需使用大小写(Linux系统下数据库名区分大小写)。
1.2 创建示例创建默认字符集的数据库:
create database db1; 若不指定字符集和校对规则,MySQL默认使用 utf8mb4 字符集和 utf8mb4_0900_ai_ci 校对规则(具体版本可能有差异)。指定字符集创建数据库:
create database db2 character set=utf8mb4; 推荐使用 utf8mb4 而非 utf8,因为 utf8mb4 支持更多字符(如Emoji表情)。同时指定字符集和校对规则:
create database db3 character set=utf8mb4 collate utf8mb4_general_ci;二、字符集与校对规则 2.1 查看系统默认配置 查看默认字符集:show variables like 'character_set_database'; 查看默认校对规则:show variables like 'collation_database'; 2.2 查看支持的字符集与校对规则
查看所有支持的字符集:
show charset;输出示例:
+----------+---------------------------------+ | Charset | Description | +----------+---------------------------------+ | utf8mb4 | UTF-8 Unicode | | latin1 | cp1252 West European | +----------+---------------------------------+查看所有支持的校对规则:
show collation;输出示例:
+----------------------+----------+-----+ | Collation | Charset | Id | +----------------------+----------+-----+ | utf8mb4_general_ci | utf8mb4 | 45 | | utf8mb4_bin | utf8mb4 | 46 | +----------------------+----------+-----+ 2.3 校对规则的实际影响 示例1:不区分大小写(utf8mb4_general_ci) create database test1 collate utf8mb4_general_ci; use test1; create table person(name varchar(20)); insert into person values ('a'), ('A'), ('b'), ('B');查询结果:
select * from person where name='a'; -- 返回 'a' 和 'A'说明:utf8mb4_general_ci 校对规则忽略大小写,a 和 A 视为相同。
示例2:区分大小写(utf8mb4_bin) create database test2 collate utf8mb4_bin; use test2; create table person(name varchar(20)); insert into person values ('a'), ('A'), ('b'), ('B');查询结果:
select * from person where name='a'; -- 仅返回 'a'说明:utf8mb4_bin 校对规则按二进制比较,区分大小写。
排序对比 不区分大小写排序:select * from person order by name; -- 结果:a, A, b, B(按字母顺序,不区分大小写) 区分大小写排序:select * from person order by name; -- 结果:A, B, a, b(大写字母优先)三、数据库的日常操作 3.1 查看所有数据库 / 查看当前数据库 show databases;
输出示例:
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | test1 | +--------------------+ select database();输出示例:
+------------+ | database() | +------------+ | helloworld | +------------+ 1 row in set (0.00 sec) 3.2 显示数据库的创建语句 show create database 数据库名;示例:
show create database mytest;输出:
+----------+--------------------------------------------------------+ | Database | Create Database | +----------+--------------------------------------------------------+ | mytest | CREATE DATABASE `mytest` DEFAULT CHARSET=utf8mb4 | +----------+--------------------------------------------------------+注意:反引号 ` 用于包裹数据库名,避免与关键字冲突(如使用 database 作为库名)。
3.3 修改数据库修改字符集或校对规则:
alter database 数据库名 character set=新字符集 collate=新校对规则;示例:
alter database mytest character set=gbk collate gbk_chinese_ci;注意:修改字符集不会自动转换已有数据,需手动调整表结构。
3.4 删除数据库 drop database 数据库名;风险提示:
删除操作会永久删除数据库及其所有表和数据。生产环境中建议先备份再执行删除!四、备份与恢复 4.1 备份数据库
使用 mysqldump 工具进行备份:
# 备份整个数据库(包含创建语句) mysqldump -u root -p123456 -B mytest > D:/mytest.sql # 备份单张表 mysqldump -u root -p mytest person > D:/person.sql参数说明:
-B:备份整个数据库(包含 create database 语句)。未使用 -B 时,恢复需手动创建数据库。 4.2 恢复数据库在MySQL命令行中执行:
source D:/mytest.sql;分步恢复(无 -B 参数时):
create database mytest; -- 1. 创建空数据库 use mytest; -- 2. 切换到该数据库 source D:/mytest.sql; -- 3. 执行备份文件五、查看数据库连接
监控当前连接状态:
show processlist;输出示例:
+----+------+-----------+------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+------+-----------+------+---------+------+-------+------------------+ | 5 | root | localhost | test | Query | 0 | NULL | show processlist | +----+------+-----------+------+---------+------+-------+------------------+应用场景:
发现异常连接(如未知IP的登录)。分析性能问题(长时间运行的查询)。