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;

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

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

相关推荐
chengxuyuan1213_11 分钟前
高级SQL技巧
java·数据库·sql
weixin_SAG15 分钟前
21天掌握javaweb-->第15天:综合项目实战启动与需求分析
数据库
nbplus_0071 小时前
Redis Set操作
数据库·redis·bootstrap
逸曦玥泱1 小时前
搭建分布式HBase集群
数据库·分布式·hbase
逆天小北鼻2 小时前
配置一个外网yum源及常用命令
服务器·数据库·windows
weisian1512 小时前
Redis篇-11--数据结构篇3--字符串内存模型(简单动态字符串SDS)
数据结构·数据库·redis
.生产的驴2 小时前
Dcoker Redis哨兵模式集群介绍与搭建 故障转移 分布式 Java客户端连接
java·大数据·数据库·redis·分布式·mysql·缓存
小小小妮子~2 小时前
MySQL专题:SQL优化实践
数据库·oracle
开敲2 小时前
【MySQL】MySQL表的操作
数据库·mysql
Psycho_MrZhang2 小时前
MySQL JOIN算法实现和选择
数据库·mysql·算法