发布时间:2026/8/31 11:51:14
MySQL 数据库操作详解:从创建到备份 目录1. 前言2. ️ 库的操作2.1 创建数据库2.3 字符集和校验规则2.4 操纵数据库3. 总结4. 经典面试题1. 前言在 MySQL 的学习与面试中对数据库本身的操作是基石中的基石。无论是创建项目、设计表结构还是进行数据迁移与恢复都离不开对数据库的增删改查。本文将基于 MySQL 官方文档与实践经验系统性地梳理数据库的创建、字符集选择、查看、修改、删除、备份与恢复等核心操作并附上经典面试题助你轻松应对面试挑战。2. ️ 库的操作2.1 创建数据库语法CREATEDATABASE[IFNOTEXISTS]db_name[create_specification[,create_specification]...]create_specification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_name说明大写的表示关键字CREATE、DATABASE、IF NOT EXISTS等是 SQL 关键字建议大写以增强可读性。[]是可选项IF NOT EXISTS表示如果数据库不存在才创建避免重复创建报错。CHARACTER SET指定数据库采用的字符集例如utf8、gbk。COLLATE指定数据库字符集的校验规则例如utf8_general_ci、utf8_bin。创建数据库案例1. 创建名为db1的数据库createdatabasedb1;说明当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_general_ci。2. 创建一个使用utf8字符集的db2数据库createdatabasedb2charsetutf8;3. 创建一个使用utf8字符集并带校对规则的db3数据库createdatabasedb3charsetutf8collateutf8_general_ci;2.3 字符集和校验规则2.3.1 查看系统默认字符集以及校验规则showvariableslikecharacter_set_database;showvariableslikecollation_database;2.3.2 查看数据库支持的字符集showcharset;字符集主要是控制用什么语言。比如utf8就可以使用中文。2.3.3 查看数据库支持的字符集校验规则showcollation;2.3.4 校验规则对数据库的影响校验规则决定了数据库在比较字符时是否区分大小写、排序规则等。我们通过两个例子来直观感受。1. 不区分大小写创建一个数据库校验规则使用utf8_general_ci不区分大小写。createdatabasetest1collateutf8_general_ci;usetest1;createtableperson(namevarchar(20));insertintopersonvalues(a);insertintopersonvalues(A);insertintopersonvalues(b);insertintopersonvalues(B);2. 区分大小写创建一个数据库校验规则使用utf8_bin区分大小写。createdatabasetest2collateutf8_bin;usetest2;createtableperson(namevarchar(20));insertintopersonvalues(a);insertintopersonvalues(A);insertintopersonvalues(b);insertintopersonvalues(B);进行查询不区分大小写的查询以及结果mysqlusetest1;mysqlselect*frompersonwherenamea;------|name|------|a||A|------2rowsinset(0.01sec)区分大小写的查询以及结果mysqlusetest2;mysqlselect*frompersonwherenamea;------|name|------|a|------2rowsinset(0.01sec)结果排序不区分大小写排序以及结果mysqlusetest1;mysqlselect*frompersonorderbyname;------|name|------|a||A||b||B|------区分大小写排序以及结果mysqlusetest2;mysqlselect*frompersonorderbyname;------|name|------|A||B||a||b|------总结utf8_general_ci在比较时会将a和A视为相同排序时也不区分大小写而utf8_bin则会严格区分排序时大写字母会排在小写字母之前基于 ASCII 码。2.4 操纵数据库2.4.1 查看数据库showdatabases;2.4.2 显示创建语句showcreatedatabase数据库名示例mysqlshowcreatedatabasemytest;--------------------------------------------------------------------------|Database|CreateDatabase|--------------------------------------------------------------------------|mysql|CREATEDATABASEmytest/*!40100 DEFAULT CHARACTER SET utf8 */|--------------------------------------------------------------------------说明MySQL 建议我们关键字使用大写但是不是必须的。数据库名字的反引号是为了防止使用的数据库名刚好是关键字。/*!40100 default.... */这个不是注释表示当前 mysql 版本大于 4.01 版本就执行这句话。查看当前处于哪一个数据库中selectdatabase();2.4.3 修改数据库语法ALTERDATABASEdb_name[alter_spacification[,alter_spacification]...]alter_spacification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_name说明对数据库的修改主要指的是修改数据库的字符集、校验规则。实例将mytest数据库字符集改成gbkmysqlalterdatabasemytestcharsetgbk;Query OK,1rowaffected(0.00sec)mysqlshowcreatedatabasemytest;--------------------------------------------------------------------------|Database|CreateDatabase|--------------------------------------------------------------------------|mytest|CREATEDATABASEmytest/*!40100 DEFAULT CHARACTER SET gbk */|--------------------------------------------------------------------------同时修改字符集和校验规则alterdatabasetest2charsetgbkcollategbk_chinese_ci;2.4.4 数据库删除语法DROPDATABASE[IFEXISTS]db_name;注意不建议直接对数据库进行删除。执行删除之后的结果数据库内部看不到对应的数据库。对应的数据库文件夹被删除级联删除里面的数据表全部被删。2.4.5 备份和恢复2.4.5.1 备份语法# mysqldump -P3306 -u root -p 密码 -B 数据库名 数据库备份存储的文件路径示例将mytest库备份到文件退出连接在命令行窗口执行该命令# mysqldump -P3306 -u root -p123456 -B mytest D:/mytest.sql这时可以打开看看mytest.sql文件里的内容其实把我们整个创建数据库建表导入数据的语句都装载这个文件中。2.4.5.2 还原mysqlsource D:/mysql-5.7.22/mytest.sql;2.4.5.3 注意事项如果备份的不是整个数据库而是其中的一张表怎么做# mysqldump -u root -p 数据库名 表名1 表名2 D:/mytest.sql同时备份多个数据库# mysqldump -u root -p -B 数据库名1 数据库名2 ... 数据库存放路径如果备份一个数据库时没有带上-B参数在恢复数据库时需要先创建空数据库然后使用数据库再使用source来还原。2.4.6 查看连接情况showprocesslist示例mysqlshowprocesslist;-------------------------------------------------------------------|Id|User|Host|db|Command|Time|State|Info|-------------------------------------------------------------------|2|root|localhost|test|Sleep|1386||NULL||3|root|localhost|NULL|Query|0|NULL|showprocesslist|-------------------------------------------------------------------可以告诉我们当前有哪些用户连接到我们的 MySQL如果查出某个用户不是你正常登陆的很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时可以用这个指令来查看数据库连接情况。3. 总结本文详细介绍了 MySQL 数据库操作的核心知识点从创建、字符集选择、查看、修改、删除到备份与恢复每一步都配有清晰的语法和实例。掌握这些内容不仅能让你在日常开发中游刃有余更能让你在面试中自信地回答相关问题。记住数据库操作是基础务必亲手敲一遍代码加深理解。4. 经典面试题1. 什么是数据库的字符集和校验规则它们有什么区别解答字符集Character Set定义了数据库可以存储哪些字符例如utf8可以存储中文、英文等。校验规则Collation定义了字符之间的比较规则例如是否区分大小写、排序顺序等。简单来说字符集决定“能存什么”校验规则决定“怎么比较和排序”。2. 创建一个数据库时如果不指定字符集默认会使用什么解答在 MySQL 中如果不指定字符集默认会使用utf8字符集对应的默认校验规则是utf8_general_ci。3. 请解释utf8_general_ci和utf8_bin两种校验规则的区别并举例说明。解答utf8_general_ci是不区分大小写的校验规则在查询和排序时会将a和A视为相同。而utf8_bin是二进制比较严格区分大小写。例如在utf8_general_ci规则下SELECT * FROM table WHERE namea会同时匹配到a和A而在utf8_bin规则下只会匹配到a。4. 如何备份和恢复一个 MySQL 数据库请写出关键命令。解答备份使用mysqldump命令例如mysqldump -u root -p -B 数据库名 备份文件路径.sql。恢复登录 MySQL 后使用source命令例如source /path/to/备份文件.sql。如果备份时没有使用-B参数需要先手动创建数据库并use它再执行source。5. 如何查看当前有哪些用户连接到了 MySQL 数据库这个命令有什么实际用途解答使用show processlist;命令可以查看当前所有连接到 MySQL 的连接信息包括用户、主机、正在执行的命令等。这个命令的实际用途是排查数据库连接问题例如当数据库响应变慢时可以查看是否有大量异常连接或长时间未关闭的连接甚至可以用来发现潜在的安全入侵。

相关新闻

2026/8/30 0:01:55

达梦数据库-堆栈看问题-02-flst_remove

目录 一、环境信息 二、说点什么 三、函数栈截图 一、环境信息 名称 值 CPU 12th Gen Intel(R) Core(TM) i7-12700H 操作系统 CentOS Linux release 7.9.2009 (Core) 内存 7G 逻辑核数 8 DM版本 8.1.4.170 二、说点什么 达梦闭源,堆栈中的函数我们多记录一次,就多一次解决…

2026/8/31 21:45:33

稻百年胖东来研学 以爱深耕餐饮经营

受访人:廖翠 经营者 山西大宅第餐饮有限公司这些年我最深切的感悟是:坚持学习的企业,和固步自封的企业,终将走出截然不同的发展路径。近几年,我始终保持持续学习的心态,不断精进经营认知。这次我走进稻百年…

2026/8/31 21:45:33

基于SSH框架的百货中心供应链管理系统设计与实现详解

简介:本资源是一套面向高校计算机专业本科生毕业设计与课程实训的完整供应链管理系统实现方案,基于JavaEE平台,采用SSH(Struts2SpringHibernate)经典三层架构,结合MySQL数据库构建百货中心级供应链业务模型…

2026/8/31 21:45:33

STWIN.box外部速度传感器触发数据采集实践——基于DATALOG2固件

手里有一块STWIN.box,又恰好遇到需要“用外部速度传感器的脉冲信号触发数据采集”这种需求,那你大概率已经体会过那种尴尬:设备一直在录,SD卡里堆满了“什么都没发生”的数据,真正想要的故障特征反而被淹没在冗余数据里…

2026/8/31 21:45:33

STM32设备端微调:608字节优化器与健康监控实战

1. 为什么是608字节:设备端微调的第一性问题先说个容易被忽略的事实:STM32上跑推理和跑微调,是两个完全不同的世界。推理只需要前向传播,权重固定不变,Flash里烧一份模型,RAM里开几个buffer就能转起来。但微…

2026/8/31 1:05:20

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/8/31 2:14:20

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/8/31 1:41:28

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/8/31 0:07:32

STM32C5设备支持包(IAR DFP)安装指南与常见坑

上一阵子在IAR里折腾一块基于STM32C5系列的新板子,工程从STM32CubeMX导出来之后怎么都编译不过。报错信息很干脆:找不到设备描述文件。跟着错误路径去查,发现指向的是一个让我愣了一下的名字:STMicroelectronics.stm32c5xx.2.1.0.…

2026/8/31 0:07:32

STM32N657 SWO引脚矛盾:CubeMX显示PB3,数据手册为PB5

拿到STM32N657这颗料的第一天,我就撞上了一个让人原地懵圈的引脚矛盾:CubeMX里清清楚楚显示SWO在PB3,翻开数据手册的引脚说明表,却赫然写着PB5。对于一个靠SWO输出调试日志吃饭的人而言,这种"工具和手册打架"…

2026/8/31 12:44:45

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/31 9:19:59

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/31 6:53:02

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…