MySQL库的操作

MySQL库的操作

🌟🌟hello,各位读者大大们你们好呀🌟🌟

🚀🚀系列专栏:【MySQL的学习】

📝📝本篇内容:创建删除数据库;数据库字符集和编码集;查看数据库;修改数据库;备份和恢复;查看连接情况

⬆⬆⬆⬆上一篇:MySQL初识

💖💖作者简介:轩情吖,请多多指教(>> •̀֊•́ ) ̖́-

1.创建删除数据库

这个其实我们已经演示过了,但是这里再讲一下,并且还有一些增加的内容。第二条命令是当数据库不存在才会创建

bash 复制代码
create database db_name;
create database if not exists db_name;


接下来是删除数据库

bash 复制代码
drop database db_name;
drop database if exists db_name;

和我们的创建一样,删除就是删除目录

对应的数据库文件夹被删除,级联删除,里面的数据表全部被删

注意:不要随意删除数据库

2.数据库字符集和编码集

我们先来谈谈什么是字符集和编码集

在我们创建数据库的时候,有两个编码集

①数据库编码集:数据库未来存储数据时使用的

②数据库校验集:支持数据库,进行字段比较使用的编码,本质也是一种读取数据库中数据采用的编码格式

数据库无论对数据做任何操作,都必须保证操作和编码必须是编码一致的

bash 复制代码
show variables like 'character_set_database';
show variables like 'collation_database';

这两条命令是用来查询系统默认字符集和校验集的,这个就是我们之前在配置文件设置后的影响,它就是系统默认的

当我们在创建数据库没有指定字符集和校验集时,就使用系统默认的,就是我们配置文件设置的。

bash 复制代码
show collation;
show charset;

上面两命令是用来查是数据库支持的字符集和校验集,collation是校验集,charset是字符集


bash 复制代码
show character set;

当然这条命令也可以查询字符集,它和charset是同一个意思

接下来要试一下指定字符集和校验集来创建库,并且要尝试验证如果使用不同的编码会有什么问题

bash 复制代码
create database db_name charset=utf8;
create database db_name character set utf8;
create database db_name charset=utf8 collate utf8_general_ci;	

第一行命令就是创建库并设置它的字符集,第二行命令也是一样的,只不过不同的写法,第三行命令是同时设置字符集和校验集

接下来来测试我们使用相同的字符集但不同的校验集会怎么样,校验集使用utf8_general_ci和utf8_bin,utf8_bin是区分字母大小写,而utf8_general_ci不区分,它也是我们默认使用的校验集。在以前的版本中会在对应的linux路径下有个.opt路径来查看当前数据库所设置的字符集和校验集,但是我这个是8.版本,只能使用命令查看。还有一点我们对数据库设置的校验集和字符集,表就会按照这个来。


之前说过,校验集是在读取的时候以及对比的时候产生效果的,这边就看出我们的person是区分大小写的,如果不清晰,看一下接下来对比的数据库


3.查看数据库

bash 复制代码
show databases;
show create database db_name;

第一条命令不用解释大家也已经见到过好几次了,第二条命令是用来查看创建语句,数据库名字的反引号``,是为了防止使用的数据库名刚好是关键字

/*!40100 default... / 这个不是注释,/ !40100 DEFAULT CHARACTER SET utf8mb3 COLLATE utf8mb3_bin /:如果你的数据库版本≥MySQL 4.01,就给 d1 设定默认的文字编码格式是 utf8mb3、排序规则是 utf8mb3_bin(简单理解就是数据库存文字的 "规则");如果版本比 4.01 老,这行配置就自动忽略;
/
!80016 DEFAULT ENCRYPTION='N' */:如果你的数据库版本≥MySQL 8.0.16,就设定这个数据库不加密(N 就是 "不" 的意思);版本不够的话,这行也会被当成注释跳过。

4.修改数据库


bash 复制代码
alter database db_name charset=utf8 collate=utf8_general_ci;
alter database db_name charset utf8 collate utf_general_ci;
alter database db_name character set=utf8 collate=utf_general_ci;
alter database db_name character set utf8 collate utf_general_ci;

=可以使用也可以不使用,但是个人觉得使用=更清晰一点

5.备份和恢复

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

我们可以看一下备份的文件内容,其实把我们整个创建数据库,建表,导入数据的语句都装载这个文件中了。

bash 复制代码
mysql> source /home/lnb/桌面/MySQL/d1.sql;


当需要备份的不是数据库,而是其中的一张表

bash 复制代码
mysqldump -P3306 -u root -p test student > /home/lnb/桌面/MySQL/test.sql



同时备份多个数据库

bash 复制代码
mysqldump -u root -p -B 数据库名1 数据库名2 ... > 数据库存放路径

如果备份一个数据库时,没有带上-B参数, 在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原







前面在备份表的那部分之所以不需要指定是因为在我们删除完表后,立马进行恢复,我们依旧选中了原本的数据库,没有改变。但是这里因为经历了删除创建,所以说需要重新选中。

6.查看连接情况

bash 复制代码
show processlist;

可以告诉我们当前有哪些用户连接到我们的MySQL,如果查出某个用户不是你正常登陆的,很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时,可以用这个指令来查看数据库连接情况。
🌸🌸MySQL库的操作大概就讲到这里啦,博主后续会继续更新更多Qt的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!如有小伙伴需要Qt的安装包可以私信我,你们的支持是博主坚持创作的动力!💪💪

相关推荐
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-02-25
数据库·人工智能·经验分享·神经网络·chatgpt
Flobby5291 小时前
深入理解 MySQL 锁:从全局锁到死锁检测
数据库·后端·mysql
是小崔啊2 小时前
MySQL22 - 分库分表的聚合问题
数据库
troublea2 小时前
ThinkPHP3.x高效学习指南
mysql·nginx·缓存
玖雨y2 小时前
【DDIA】存储和查询
数据库·后端·存储·ddia
蒸蒸yyyyzwd2 小时前
redis实战学习笔记p1-12
数据库·笔记
菜鸟小九2 小时前
redis原理篇(五种数据结构)
数据结构·数据库·redis
Henry Zhu1232 小时前
数据库:事务管理详解
数据库
kangzerun2 小时前
SQLiteManager:一个优雅的Qt SQLite数据库操作类
数据库·qt·sqlite