【mysql是怎样运行的】-mysql字符集
创始人
2024-03-17 11:52:00
0

文章目录

    • 1. 服务器级别
    • 2. 数据库级别
    • 3. 表级别
    • 4. 列级别

MySQL 有 4 个级别的字符集和比较规则,分别是 服务器级别、数据库级别、表级别、列级别.

1. 服务器级别

在这里插入图片描述

SHOW VARIABLES like 'character_set_server'
SHOW VARIABLES like 'collation_server'

在启动服务器程序时,可以通过启动选项或者在服务器程序运行过程中使用SET语句来修改这两个变量的值

启动选项:

#当服务器在启动时读取这个配置文件后,这两个系统变量的值便修改了
[server]
character_set_server=gb2312
collation_server=gb2312_chinese_ci

过程中set:

SET character_set_server = gb2312;

2. 数据库级别

我们在创建和修改数据库时可以指定该数据库的字符集和比较规则
在这里插入图片描述
具体语法:

CREATE DATABASE 数据库名
[[DEFAULT] CHARACTER SET 字符集名称]
[[DEFAULT] COLLATE 比较规则名称];ALTER DATABASE 数据库名
[[DEFAULT] CHARACTER SET 字符集名称]
[[DEFAULT] COLLATE 比较规则名称];

如:
CREATE DATABASE task CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;
在这里插入图片描述
查看

SHOW VARIABLES like 'character_set_database';
SHOW VARIABLES like 'collation_database';

在数据库的创建语句中也可以不指定字符集和比较规则,如这样
CREATE DATABASE 数据库名;
这将默认使用服务器级别的字符集和比较规则作为数据库的字符集和比较规则·

3. 表级别

我们也可以在创建和修改表的时候指定表的字符集和比较规则
具体语法:

CREATE TABLE 表名(列的信息
)[[DEFAULT] CHARACTER SET 字符集名称]
[[DEFAULT] COLLATE 比较规则名称];ALTER TABLE 表名
[[DEFAULT] CHARACTER SET 字符集名称]
[[DEFAULT] COLLATE 比较规则名称];

如:

CREATE TABLE st(`id` int(11) NOT NULL AUTO_INCREMENT,`user_id` int(11) DEFAULT NULL,`entity_type` int(11) DEFAULT NULL,`entity_id` int(11) DEFAULT NULL,`target_id` int(11) DEFAULT NULL,`content` text,`status` int(11) DEFAULT NULL,`create_time` timestamp NULL DEFAULT NULL,PRIMARY KEY (`id`),KEY `index_user_id` (`user_id`)
)CHARACTER SET gb2312 COLLATE gb2312_chinese_ci;

如果创建表的语句中没有指明字符集和比较规则 ,则使用该表所在数据库的字符集和比较规则作为该表的字符集和比较规则.

4. 列级别

对于存储字符串的列,同一个表中不同的列也可以有不同的字符集和比较规则。我们在创建和修改列的时候可以指定该列的字符集和比较规则,语法如下:

CREATE TABLE 表名(
列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称]
其他列....);ALTER TABLE 表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称];

如:

ALTER TABLE t MODIFY col VARCHAR(10) CHARACTER SET gbk COLLATE gbk_ chinese_ci;

对于某个列来说,如果在创建和修改表的语句中没有指明字符集和比较规则,则使用该列所在表的字符集和比较规则作为其字符集和比较规则。

总结:
由于字符集和比较规则之间相互关联,因此如果只修改字符集,比较规则也会跟着变化;如果只修改比较规则,字符集也会跟着变化.具体规则如下

  • 只修改字符集,则比较规则将变为修改后的字符集默认的比较规则,
  • 只修改比较规则,则字符集将变为修改后的比较规则对应的字符集.

相关内容

热门资讯

汽车油箱结构是什么(汽车油箱结... 本篇文章极速百科给大家谈谈汽车油箱结构是什么,以及汽车油箱结构原理图解对应的知识点,希望对各位有所帮...
美国2年期国债收益率上涨15个... 原标题:美国2年期国债收益率上涨15个基点 美国2年期国债收益率上涨15个基...
嵌入式 ADC使用手册完整版 ... 嵌入式 ADC使用手册完整版 (188977万字)💜&#...
重大消息战皇大厅开挂是真的吗... 您好:战皇大厅这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...
盘点十款牵手跑胡子为什么一直... 您好:牵手跑胡子这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游...
senator香烟多少一盒(s... 今天给各位分享senator香烟多少一盒的知识,其中也会对sevebstars香烟进行解释,如果能碰...
终于懂了新荣耀斗牛真的有挂吗... 您好:新荣耀斗牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信8435338】很多玩家在这款游戏...
盘点十款明星麻将到底有没有挂... 您好:明星麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【5848499】很多玩家在这款游戏...
总结文章“新道游棋牌有透视挂吗... 您好:新道游棋牌这款游戏可以开挂,确实是有挂的,需要了解加客服微信【7682267】很多玩家在这款游...
终于懂了手机麻将到底有没有挂... 您好:手机麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8435338】很多玩家在这款游戏...