修改数据库字符集和校对规则,数据库的字符集怎么设置

首页 > 实用技巧 > 作者:YD1662023-11-27 04:12:03

概念说明

1、字符集(Character Set)

定义了字符和二进制的对应关系,为字符分配了唯一的编号。

2、字符编码(Character Encoding)

字集码,规定了字符的编号存储到计算机中。如:ASCII、IOS-8859-1、GB2312、gbk,既表示了字符集又表示了对应的字符编码。

3、校对规则(Collation)

也可称为排序规则,在同一个字符集内字符之间的比较规则,字符集和校对规则是一对多的关系,每个字符集都有一个默认的校对规则,字符集和校对规则相辅相成,相互依赖关联。

4、总结

字符集定义了MySQL存储字符串的方式,校对规则定义了MySQL比较字符串的方式。

字符集(Character Set)

1、查询支持的字符集以及默认的校对规则

show character set;

修改数据库字符集和校对规则,数据库的字符集怎么设置(1)

2、查询当前MySQL使用的字符集

show variables like '%character%'

修改数据库字符集和校对规则,数据库的字符集怎么设置(2)

3、MySQL字符编码转换原理

修改数据库字符集和校对规则,数据库的字符集怎么设置(3)

①MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection。

②进行内部操作前将请求数据从character_set_connection转换为内部操作字符集。

校对规则(Collation)

1、查询支付的校对规则

show collation;

2、查询当前MySQL使用的校对规则

show variables like '%character%';

修改数据库字符集和校对规则,数据库的字符集怎么设置(4)

3、校对规则特征

①两个不同的字符集不能有相同的校对规则。

②每个字符集有一个默认校对规则。

③存在校对规则命名约定:以其相关的字符集名开始,中间包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)或_bin(二元)结束。

4、说明总结

系统使用utf8字符集,若使用utf8_bin校对规则执行SQL查询时区分大小写,使用utf8_general_ci不区分大小写(默认的utf8字符集对应的校对规则是utf8_general_ci)。

实战常用

1、创建数据库指定编码及校对规则

create database demo1 character set=gbk collate=gbk_bin;

2、创建表指定编码及校对规则

create table demo2( id int, name varchar(20) ) character set=gbk,collate=gbk_bin;

3、创建表字段指定编码及校对规则

create table demo3( id int, name varchar(20), email varchar(100) collate gbk_bin, mobile varchar(100) collate utf8mb4_unicode_ci ) character set=gbk,collate=gbk_bin;

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.