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;

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

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

相关推荐
笃行3502 小时前
金仓数据库数据安全双防线:静态存储加密与传输加密实战
数据库
笃行3502 小时前
金仓数据库物理备份实战:sys_rman 全流程演练与误覆盖抢救
数据库
笃行3502 小时前
金仓数据库逻辑备份实战:从全库导出到 Schema 替换的完整闭环
数据库
元Y亨H2 小时前
技术笔记:MySQL 字符集排序规则与大小写敏感性问题解决方案
mysql
SelectDB1 天前
阶跃星辰基于 SelectDB 构建 PB 级 Agent 可观测平台
大数据·数据库·aigc
这个DBA有点耶1 天前
GROUP BY优化全解:如何写出既不丢数据又飞快的分组查询
数据库·mysql·架构
掉头发的王富贵1 天前
【StarRocks】极限十分钟入门StarRocks
数据库·sql·mysql
Nturmoils1 天前
WHERE 条件别凭习惯写,常用查询先跑一遍
数据库
SamDeepThinking1 天前
一条UPDATE语句在MySQL 8.0中到底加了几把锁?
后端·mysql·程序员