【MySQL】3. MySQL库的操作
目录1. 创建数据库1.1 创建数据库语法指令1.2 创建数据库案例2. 删除数据库3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则3.2 查看数据库支持的字符集3.3 查看数据库支持的字符集校验规则3.4 查看某一个数据库的字符集/校验规则3.5 校验规则对数据库的影响1.不区分大小写的校验规则2.区分大小写的校验规则3.进行查询4.结果排序4. 操纵数据库4.1 查看数据库4.2 显示创建语句同查看数据库字符集/校验规则4.3 修改数据库4.4 数据库删除4.5 备份和恢复放在最后4.5.1 备份4.5.2 还原4.5.3 进阶备份场景4.5.4 关键注意事项4.6 查看连接情况注意MySQL 的 SQL 关键字如 SELECT、CREATE不区分大小写大小写写法均可执行数据库 / 表名的大小写规则受操作系统影响Linux 区分、Windows 不区分字符串值完全区分大小写列名建议保持写法一致1. 创建数据库1.1 创建数据库语法指令语法CREATEDATABASE[IFNOTEXISTS]db_name[create_specification[,create_specification]...]create_specification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_namecreatedatabase[ifnotexists]db_name[create_specification[,create_specification]...]create_specification:[default]charactersetcharset_name[default]collatecollation_name说明大写的表示关键字[]是可选项CHARACTER SET指定数据库采用的字符集COLLATE指定数据库字符集的校验规则创建数据库的时候有两个编码集数据库字符集数据库为来存储数据的格式数据库校验集支持数据库进行字段比较使用的编码本质也是一种数据库无论对数据做任何操作都必须保证操作和编码必须是编码一致的1.2 创建数据库案例创建名为db1的数据库createdatabasedb1;说明当我们创建数据库没有指定字符集和校验规则时系统使用默认字符集utf8校验规则是utf8_general_ci创建一个使用utf8字符集的db2数据库createdatabasedb2charsetutf8;创建一个使用utf8字符集并带校对规则的db3数据库createdatabasedb3charsetutf8collateutf8_general_ci;2. 删除数据库dropdatabasedb_name删除名为db1的数据库dropdatabasedb1;3. 字符集和校验规则3.1 查看系统默认字符集以及校验规则showvariableslikecharacter_set_database;showvariableslikecollation_database;3.2 查看数据库支持的字符集showcharset;字符集主要是控制用什么语言。比如utf8就可以使用中文。3.3 查看数据库支持的字符集校验规则showcollation;3.4 查看某一个数据库的字符集/校验规则使用SHOW CREATE DATABASE语句这是官方推荐的方式能直接看到创建数据库时的完整配置包括你指定的字符集、校验规则。语法SHOWCREATEDATABASE数据库名;示例假设你创建了这样的数据库-- 创建时指定字符集utf8mb4、校验规则utf8mb4_unicode_ciCREATEDATABASEtest_dbDEFAULTCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;执行查看语句SHOWCREATEDATABASEtest_db;输出结果示例DatabaseCreate Databasetest_dbCREATE DATABASEtest_db/*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */解读DEFAULT CHARACTER SET utf8mb4你指定的字符集COLLATE utf8mb4_unicode_ci你指定的校验规则即使是 MySQL 8.0无 db.opt 文件这个语句也能正常返回结果。3.5 校验规则对数据库的影响1.不区分大小写的校验规则创建一个数据库校验规则使用utf8_general_ci不区分大小写# 创建数据库createdatabasetest1collateutf8_general_ci;# 使用数据库usetest1;# 建表createtableperson(namevarchar(20));# 插入数据insertintopersonvalues(a);insertintopersonvalues(A);insertintopersonvalues(b);insertintopersonvalues(B);# 查看数据库中的表要在某一个数据库里面使用showtables;# 查看某一个表结构desctable_name;2.区分大小写的校验规则创建一个数据库校验规则使用utf8_bin区分大小写createdatabasetest2collateutf8_bin;usetest2;createtableperson(namevarchar(20));insertintopersonvalues(a);insertintopersonvalues(A);insertintopersonvalues(b);insertintopersonvalues(B);3.进行查询不区分大小写的查询以及结果mysqlusetest1;mysqlselect*frompersonwherenamea;------|name|------|a||A|------2rowsinset(0.01sec)区分大小写的查询以及结果mysqlusetest2;mysqlselect*frompersonwherenamea;------|name|------|a|------2rowsinset(0.01sec)4.结果排序不区分大小写排序以及结果mysqlusetest1;mysqlselect*frompersonorderbyname;------|name|------|a||A||b||B|------区分大小写排序以及结果mysqlusetest2;mysqlselect*frompersonorderbyname;------|name|------|A||B||a||b|------4. 操纵数据库4.1 查看数据库查看所有数据库showdatabases;查看自己所在的当前数据库showdatabase();4.2 显示创建语句同查看数据库字符集/校验规则showcreatedatabase数据库名;示例mysqlshowcreatedatabasemytest;------------------------------------------------------------------------|Database|CreateDatabase|------------------------------------------------------------------------|mysql|CREATEDATABASEmytest/*!40100 DEFAULT CHARACTER SET utf8 */|------------------------------------------------------------------------说明MySQL 建议关键字使用大写但不是必须的。数据库名字的反引号 是为了防止使用的数据库名刚好是关键字。/*!40100 default.... */这不是注释表示当前 MySQL 版本大于 4.01 版本就执行这句话。4.3 修改数据库语法ALTERDATABASEdb_name[alter_specification[,alter_specification]...]alter_specification:[DEFAULT]CHARACTERSETcharset_name[DEFAULT]COLLATEcollation_name说明对数据库的修改主要指的是修改数据库的字符集、校验规则。实例将mytest数据库字符集改成gbkmysqlalterdatabasemytestcharsetgbk;Query OK,1rowaffected(0.00sec)mysqlshowcreatedatabasemytest;------------------------------------------------------------------------|Database|CreateDatabase|------------------------------------------------------------------------|mytest|CREATEDATABASEmytest/*!40100 DEFAULT CHARACTER SET gbk */|------------------------------------------------------------------------4.4 数据库删除DROPDATABASE[IFEXISTS]db_name;执行删除之后的结果数据库内部看不到对应的数据库。对应的数据库文件夹被删除级联删除里面的数据表全部被删。注意不要随意删除数据库。4.5 备份和恢复放在最后4.5.1 备份核心说明mysqldump是 MySQL 官方提供的备份工具需在操作系统的命令行终端而非 MySQL 客户端执行适用于所有 MySQL 版本。基础语法# 完整格式推荐mysqldump -P 端口号 -u 用户名 -p 数据库名备份文件存储路径# 带-B参数备份时包含CREATE DATABASE语句恢复更便捷mysqldump -P 端口号 -u 用户名 -p -B 数据库名备份文件存储路径参数说明-P指定 MySQL 端口号注意是大写 P小写 p 是密码参数-u指定连接的 MySQL 用户名-p表示需要输入密码建议不直接写密码回车后交互式输入更安全-B备份时包含CREATE DATABASE和USE语句恢复时无需手动创建 / 切换数据库。示例将mytest库备份到 D 盘根目录安全写法# 执行后会提示输入密码回车后输入123456即可mysqldump -P3306 -u root -p -B mytestD:/mytest.sql备份文件内容mytest.sql会包含创建数据库、建表、插入数据的完整 SQL 语句本质是纯文本的 SQL 脚本。4.5.2 还原方式 1MySQL 客户端内执行推荐需先登录 MySQL 客户端再通过source命令执行备份脚本-- 登录MySQLmysql-u root-p-- 执行还原路径需写备份文件的绝对路径mysqlsource D:/mytest.sql;方式 2命令行终端执行无需登录 MySQL 客户端直接在终端执行mysql -u root -pD:/mytest.sql# 输入密码后自动完成还原4.5.3 进阶备份场景备份单个 / 多张表无需-B参数# 备份mytest库中的user表和order表mysqldump -P3306 -u root -p mytest user orderD:/mytest_tables.sql同时备份多个数据库# 备份mytest、test1、test2三个数据库mysqldump -P3306 -u root -p -B mytest test1 test2D:/multi_db.sql4.5.4 关键注意事项-B 参数的核心作用带-B备份文件包含CREATE DATABASE mytest和USE mytest恢复时直接执行source即可不带-B备份文件仅包含表结构和数据恢复前需手动创建空数据库并切换-- 无-B参数时的还原步骤mysqlCREATEDATABASEIFNOTEXISTSmytest;mysqlUSEmytest;mysqlsource D:/mytest.sql;安全规范避免在命令行直接写密码如-p123456防止密码泄露备份文件建议定期归档存储路径避免中文 / 空格防止解析失败。跨版本注意低版本备份的脚本可在高版本还原高版本备份的脚本需注意字符集如 8.0 默认 utf8mb4兼容问题。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如果查出某个用户不是你正常登录的很有可能你的数据库被人入侵了。以后大家发现自己数据库比较慢时可以用这个指令来查看数据库连接情况。…过云雨-CSDN博客

相关新闻

【开题答辩全过程】以 前缘农产品销售系统的设计与实现为例,包含答辩的问题和答案

【开题答辩全过程】以 前缘农产品销售系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

2026/5/17 6:39:11 阅读更多 →
阿里云国内云与国际版的区别

阿里云国内云与国际版的区别

选国际版,如果你:阿里云国际版与国内版的区别相信很多小伙伴都不一定清楚,在选择途中会迷惑,现在给大家出一份简单的总结,有助于你们在选择过程里面更加精准~1:账号完全独立国内版:手…

2026/7/5 14:58:58 阅读更多 →
春晚之后机器人遭“疯抢”,具身下半场锁定商业化

春晚之后机器人遭“疯抢”,具身下半场锁定商业化

"人形机器人从“实验室Demo”,正式跨越至“真实场景验收”阶段。"作者 | 归去来编辑 | 卢旭成本届春晚几乎成了机器人消费的“流量闸门”:在国民级曝光的瞬时转化下,多款“春晚同款”出现集中成交。标价70万元的人形机器人在单日内…

2026/5/17 6:39:11 阅读更多 →

最新新闻

LSTM 时间序列预测实战:基于3000期双色球数据,构建7维序列模型

LSTM 时间序列预测实战:基于3000期双色球数据,构建7维序列模型

LSTM时间序列预测实战:基于3000期双色球数据的7维序列建模引言:当深度学习遇见概率游戏每次双色球开奖时,那些在彩票站盯着走势图沉思的身影总让人好奇——是否存在某种数学规律能穿透随机性的迷雾?作为数据科学家,我们…

2026/7/6 0:15:20 阅读更多 →
Cartographer ROS Noetic 仿真建图实战:Gazebo+Rviz 完整流程与 3 个关键配置文件解析

Cartographer ROS Noetic 仿真建图实战:Gazebo+Rviz 完整流程与 3 个关键配置文件解析

Cartographer ROS Noetic 仿真建图实战:GazeboRviz 完整流程与 3 个关键配置文件解析当我们需要在仿真环境中验证SLAM算法时,Cartographer与Gazebo的组合提供了一个理想的测试平台。本文将深入探讨如何在ROS Noetic环境下,通过精心配置三个核…

2026/7/6 0:15:20 阅读更多 →
POSIX 1003.1 标准解析:从 fork/exec 到 72 个系统调用的可移植性实践

POSIX 1003.1 标准解析:从 fork/exec 到 72 个系统调用的可移植性实践

POSIX 1003.1 标准解析:从 fork/exec 到 72 个系统调用的可移植性实践在跨平台软件开发中,操作系统接口的差异一直是工程师面临的主要挑战之一。POSIX(Portable Operating System Interface)标准作为Unix-like系统的通用接口规范&…

2026/7/6 0:15:20 阅读更多 →
位置编码外推实战:从BERT 512到26万token的3种延拓策略

位置编码外推实战:从BERT 512到26万token的3种延拓策略

位置编码外推实战:从BERT 512到26万token的3种延拓策略当处理长文本序列时,BERT等Transformer模型面临一个根本性限制——位置编码的长度约束。传统BERT模型最多只能处理512个token,这严重制约了其在长文档理解、基因组分析等场景的应用潜力。…

2026/7/6 0:11:20 阅读更多 →
如何彻底告别重复点击:AutoClicker鼠标自动化完全指南

如何彻底告别重复点击:AutoClicker鼠标自动化完全指南

如何彻底告别重复点击:AutoClicker鼠标自动化完全指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker 还在为每天重复的鼠标点击任务感到疲惫吗…

2026/7/6 0:11:20 阅读更多 →
DQN 算法实战:CartPole-v0 环境 1000 轮训练实现 200 分满分

DQN 算法实战:CartPole-v0 环境 1000 轮训练实现 200 分满分

DQN算法实战:从零构建CartPole智能体的完整指南1. 环境准备与基础概念在开始构建DQN智能体之前,我们需要先理解几个核心概念。CartPole-v0是OpenAI Gym中的一个经典控制问题,目标是让小车上的杆子保持直立不倒下。这个环境有四个状态变量&…

2026/7/6 0:11:20 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻