当前位置: 首页 > news >正文

【mysql是怎样运行的】-mysql字符集

文章目录

    • 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;

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

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

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

相关文章:

  • 福州网站平台建设公司/xp优化大师
  • 如何建一个免费网站/友情链接的方式如何选择
  • 东南亚做棋牌网站/软件测试培训班多少钱
  • 接入网站备案要多久/谷歌手机版浏览器官网
  • 广西建设厅官网站首页/除了91还有什么关键词
  • 滨州网站建设制作系统/网店推广方案策划书
  • Android三种数据存储的方式
  • 【免费赠送源码】Springboot良辰之境影视评鉴系统n50rq计算机毕业设计-课程设计-期末作业-毕设程序代做
  • HTML+CSS抗疫网页设计 疫情感动人物静态HTML网页 web前端开发技术 web课程设计 网页规划与设计
  • JavaWeb_第6章_FilterListenerAjax
  • MySQL高级语句(三)
  • java入门(一)
  • 八股文之算法
  • 【Python】《Python编程:从入门到实践 (第2版) 》笔记-Chapter5-if 语句
  • 用 NEON 实现高效的 FIR 滤波器
  • 程序员基础能力系列(1)——vim快捷键总结
  • [附源码]计算机毕业设计基于springboot的高校资源共享平台
  • [附源码]JAVA毕业设计课程在线反馈系统(系统+LW)