MySQL数据库基础篇(三):MySQL 数据库库级操作全解:创建、字符集、管理与备份恢复实战
2026/7/17 1:11:16 网站建设 项目流程

前言

刚接触 MySQL 的开发者,大多会直接上手建表写 SQL,却忽略数据库库层面的基础操作。数据库作为数据表视图存储过程等对象的容器,字符集配置库的增删改查数据备份恢复都会直接影响项目中文乱码数据丢失查询排序异常等线上问题。本文结合实操命令,完整梳理 MySQL 数据库全流程操作,从创建库字符集校验规则,到修改删除备份还原连接查看,覆盖开发运维日常全部高频场景。

1.数据库的操作

1.创建数据库

语法:

CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [, create_specification] ...] create_specification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name

说明

  • 大写的表示关键字
  • [ ] 是可选项
  • CHARACTER SET: 指定数据库采用的字符集
  • COLLATE: 指定数据库字符集的校验规则

1.最简创建

create database 数据库名;


2.兼容安全写法,不存在再创建

create database if not exists 数据库名;

出现 1 条警告,原因:test2 这个数据库早就已经存在了

3.创建时指定字符集与校验规则(解决中文乱码核心用法)

create database db3 charset=utf8mb3 collate utf8_general_ci;

CHARSET(字符集)

COLLATE(排序规则/校对规则)

说明:当我们创建数据库没有指定字符集和校验规则时,系统使用默认字符集:utf8,校验规则是:utf8_general_ci

2.查看数据库

1.查看内容

show databases;

如果在数据库中创建了表,还可以:

use 数据库名; show tables;//查看表里面的内容

desc person;//查看详细内容

2.查看当前在哪一个数据库中

select database();

3.显示创建语句

show create database 数据库名;

4.查看数据库连接情况

show processlist;

该操作可以查询当前所有连接到MySQL的用户,如果排查发现存在非自身正常登录的陌生用户,大概率说明数据库已经被入侵。后续如果遇到数据库运行卡顿的场景,也可以通过这条指令来查看数据库的实时连接状态,辅助定位性能问题。

3.修改数据库

说明:

  • 对数据库的修改主要指的是修改数据库的字符集,校验规则

语法:

ALTER DATABASE db_name [alter_spacification [,alter_spacification]...] alter_spacification: [DEFAULT] CHARACTER SET charset_name [DEFAULT] COLLATE collation_name
alter database tets2 charset=gbk collate gbk_chinese_ci;

为什么不建议轻易修改数据库?

数据库的修改主要指对其字符集、校验规则进行调整,这类操作不建议轻易执行,因为随意变更不仅可能引发不可逆的数据乱码丢失问题,还会破坏多表关联的业务数据一致性,导致上层依赖的应用、报表出现兼容性故障,甚至引发数据库服务崩溃,同时还会大幅提升后续运维排查的难度,带来额外的安全隐患,整体改动成本极高。

4.删除数据库

drop database 数据库名;

5.数据库的备份与恢复

直接拷贝数据库文件极易产生脏数据损坏数据表InnoDB 引擎文件绑定实例 ID,跨机器 / 版本拷贝大概率无法使用,还无法同步权限、存储过程等对象,一致性与兼容性都很差,远不如官方备份工具可靠,因此不推荐。

1.备份

语法

mysqldump -P3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径;

示例:将test1库备份到文件(先退出数据库)

mysqldump -P3306 -u root -p -B test1 > test1.sql

如果备份的不是整个数据库,而是其中的一张表,怎么做?
对应操作命令:

如果备份的不是整个数据库,而是其中的一张,怎么做?
对应操作命令:

mysqldump -u root -p 数据库名 表名1 表名2 > D:/mytest.sql(存放路径)

2.恢复

source 备份文件的路径;

2.字符集和校验规则

字符集和校验集是数据库处理文字的基础规则字符集(如 utf8mb4)定义了数据的“存储标准”,决定了能存哪些字(比如是否支持 Emoji)以及底层编码方式;而校验集(如 _unicode_ci)定义了数据的“比较与排序规则”,决定了搜索时是否区分大小写、多语言如何排列等逻辑。简单来说,字符集解决的是“能不能存”的问题,校验集解决的是“怎么比对”的问题,两者配合才能确保数据存得进、查得准。

1.查看数据库支持的字符集

show charset;

2.查看数据库支持的字符集校验规则

show collation;

字符集校验规则远多于字符集,所以不一样的字符集 校验集匹配方式 会有不一样的效果

3.查看系统默认字符集以及校验规则

//字符集 show variables like 'character_set_database'; //字符集校验规则 show variables like 'collation_database';

4.校验规则对数据库的影响

1.不区分大小写

创建一个数据库,校验规则使用utf8_general_ci [不区分大小写]

-- 创建一个名为 test1 的数据库,并设置字符集排序规则为 utf8_general_ci(不区分大小写) create database test1 collate utf8_general_ci; -- 切换到名为 test1 的数据库,后续操作将在该数据库中进行 use test1; -- 在 test1 数据库中创建一张名为 person 的表,包含一个名为 name 的字段,类型为 varchar(20),最大长度 20 个字符 create table person(name varchar(20)); -- 向 person 表中插入一条记录:name 值为小写字母 'a' insert into person values('a'); -- 向 person 表中插入一条记录:name 值为大写字母 'A' insert into person values('A'); -- 向 person 表中插入一条记录:name 值为小写字母 'b' insert into person values('b'); -- 向 person 表中插入一条记录:name 值为大写字母 'B' insert into person values('B');
select * from person;// 查看数据

1.查找
//进行查找 use test1; select * from person where name='a';

2.排序
select * from person order by name;

2.区分大小写

创建一个数据库,校验规则使用utf8_bin [区分大小写]

//同上 ​ create database test1 collate utf8_general_ci; use test1; create table person(name varchar(20)); insert into person values('a'); insert into person values('A'); insert into person values('b'); insert into person values('B');
select * from person;// 查看数据

1.查找
//进行查找 use test2; select * from person where name='a';

2.排序
select * from person order by name;

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询