MySQL -- 库的相关操作

目录

查看数据库

创建数据库

直接创建:

加约束条件

[if not exists](#if not exists)

字符集和校对规则

什么是字符集

什么是校对规则

校对规则的主要功能

校对规则的特性

查看指定的数据库使用的字符集和校对规则:

比较是否区分大小写字母差异

显示创建语句

删除数据库

进入指定数据库

查看当前所在的数据库

​编辑

修改数据库

备份数据库

还原数据库


查看数据库

sql 复制代码
show databases;

创建数据库

直接创建:

sql 复制代码
create database db_name;

加约束条件

if not exists

如果数据库不存在,则创建,如果数据库已经存在了,就不创建

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

演示:

字符集和校对规则

什么是字符集

字符集(Character Set)不仅仅是一个简单字符的集合,它还包含了这些字符与数字代码之间的映射关系。换句话说,字符集定义了一组符号以及每个符号对应的编码。这种编码是计算机用来存储、处理和传输文本数据的基础。

具体来说,字符集包含以下两个关键要素:

1、字符列表:这是字符集中所有可能的字符或符号,可以包括字母、数字、标点符号、特殊符号以及其他语言的字符等。

2、编码规则:为每个字符分配一个唯一的代码点(Code Point),即一个数字标识符。这个代码点用于在计算机系统内部表示该字符。例如,在ASCII字符集中,大写字母"A"的代码点是65。

在MySQL中,可以查看数据库支持的字符集:

sql 复制代码
show charset;
什么是校对规则

校对规则(Collation)是数据库管理系统中用于定义字符数据如何进行比较和排序的一组规则。它不仅影响字符串之间的相等性判断,还决定了字符串在排序时的顺序以及模式匹配的行为。校对规则与字符集紧密相关,因为它们共同决定了文本数据的表示、存储和处理方式。

校对规则的主要功能

字符比较

  • 确定两个字符串是否相等。
  • 决定一个字符串是否大于或小于另一个字符串。

排序顺序

  • 影响查询结果中记录的排列顺序,特别是在使用 ORDER BY 子句时。

模式匹配

  • 影响 LIKE 查询和其他涉及模式匹配的操作,例如是否区分大小写
校对规则的特性
  • 大小写敏感性(Case Sensitivity)

    • CI (Case Insensitive) :不区分大小写,如 utf8mb4_general_ci
    • CS (Case Sensitive)Bin (Binary) :区分大小写,如 utf8mb4_bin

在MySQL中,可以查看数据库支持的校对规则:

sql 复制代码
show collation;

查看指定的数据库使用的字符集和校对规则:

sql 复制代码
SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
FROM information_schema.SCHEMATA
WHERE SCHEMA_NAME = 'db_name';

只约束字符集时,MySQL会根据所选字符集自动选择一个默认的校对规则:


只约束校对规则,MySQL会根据所选的校对规则自动选择一个默认的字符集:


同时约束字符集和校对规则:

比较是否区分大小写字母差异

我们可以用区分和不区分大小写的校对规则来感受一下不同校对规则的差异:

不区分大小写的校对规则:

1、创建表:

2、输入数据:

3、查询: 由于不区分大小写字母,所以大写 A 和小写 a 都会被筛选出来。

4、排序:由于不区分大小写,所以大写 A 和小写 a 是排在一起的。

区分大小写的校对规则:

1、创建表:

2、插入数据:

3、查询:由于该校验规则区分大小写,所以只有小写 a 被筛选出来。

4、排序:大写字母的 ASCII 小于小写字母的,所以大写字母排在前,小写字母排在后。

显示创建语句

sql 复制代码
show create database db_name;

删除数据库

sql 复制代码
drop database db_name;

进入指定数据库

sql 复制代码
use db_name;

查看当前所在的数据库

sql 复制代码
select database();

修改数据库

一般很少修改数据库的库名,下面只展示如何修改数据库的字符集和校对规则。

修改字符集和校对规则:

也可以只修改字符集/校对规则:

备份数据库

在任意路径下输入以下指令,并输入想要备份的数据库,并给对应的备份文件命名:

sql 复制代码
mysqldump -P3306 -u root -p -B db_name > filename.sql

打开备份文件时,可以看出备份文件中记录了用户对数据库的操作。

还原数据库

故意删除数据库:

还原:

sql 复制代码
source pathname;

由于文件中记录了用户对数据库的历史操作,在还原时,会重做这些操作,来达到恢复效果。

查看还原情况: 还原成功!

相关推荐
广州灵眸科技有限公司3 小时前
xfce桌面触摸校准:基于灵眸科技EASY-EAl-Orin-Nano
数据库·windows·科技
Cloud云卷云舒5 小时前
云卷云舒:从Oracle/MySQL迁移到HaishanDB:迁移评估工具核心技术拆解
mysql·oracle·ai-native·haishandb·信创数据库替换
憧憬成为web高手5 小时前
皮卡丘靶场速通--sql 2
数据库·sql·mybatis
段一凡-华北理工大学6 小时前
向量数据库实战:选型、调优与落地~系列文章12:文本分块策略实战:chunk_size 怎么选?重叠多少?
开发语言·数据库·后端·oracle·rust·工业智能体·高炉智能化
oradh8 小时前
Oracle XTTS实现跨版本迁移和升级(Oracle 11g单库升级至19C RAC集群)
数据库·oracle·11g升级19c·xtts跨版本迁移和升级
用户71333585156248 小时前
MySQL - 事务、redo/undo 日志与 MVCC
mysql
z123456789868 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
程序猿DD9 小时前
一个 API Key,统一调用大模型、生图和联网搜索
数据库·网关
java_logo9 小时前
Docker Compose 部署 ClickHouse:快速搭建高性能列式数据库
数据库·clickhouse·docker·列式数据库·轩辕镜像·高性能数据库·clickhouse部署教程
用户71333585156249 小时前
MySQL - InnoDB 的 Buffer Pool
mysql