3.字符集utf8 gbk big5 utf8与character set与校对规collaction则 二进制与非二进制字符串类型使用

二进制

binary,varbinary,blob

声音、图像等二进制数据

声音和图像的地址保存在表里面 不建议直接将它们保存在表里
与字符集无关的
如果没有指定是image类型 会当成普通文本显示    会出现乱码
凡事文本会有字符集来处理这个文本

非二进制
char,varchar,text    字符集utf8 gbk big5 字符集校对规则

gb2312 是一个比较早的字符集规范 大概包括6700多个汉子 2个字节来存储也就是说输入一个字要占用两个字节的空间

big5 繁体字符集 台湾 香港 使用繁体 13000多个汉子 大五码 2个字节

gbk编码       21000多个汉子    简体+繁体 2个字节 

utf-8字符集编码    可以在一个页面中体现多个语种,多个国家的文字内容 1-3字节
a 1字节 盾 3字节

unicode 国际标准化组织指定一套涵盖时间上所有语种、所有符号的编码方案
后盾 4个字节的空间

show character set;    显示字符集
比较字符集
use  webclass;
create table demo(name varchar(30) character set utf8 , name2 varcher(30) character set gbk);
分别设置成utf8和gbk字符集
show create table demo; 查看使用的字符集
insert into demo(name,name2) values("盾","盾");
insert into demo(name,name2) values("a","a");
select length(name) ,length(name2) from demo; 查看字符集长度字节

由此可见:相同的字符 utf8要比gbk多占用30%的空间
所以国内的站就使用gbk编码方式 如果要多语言的支持就是用utf8的编码方式
在处理单字节的文字字符的时候是没有差异的

select char_length(name).char_length(name) from demo;    不考虑字节单显示字的个数
show collation;    显示字符集校对规则
create table demo2(name varchar(30) character set utf8 collate utf8_bin ,name2 varchar(30) character set utf8 collate utf8_general_ci);
insert into demo2(name ,name2) values('a' , 'a') , ('b' , 'b') ,('A' ,'A');    插入三条数据
select * from demo2 where name2 ='a';
大写的A也出来了
但通过select * from demo2 where name='a';
只出来了小a
 
由此可见:第一个字符比对的时候是不区分大小写 而第二个是区分区分我们正常使用utf8_bin_ci
 
select * from demo2 order by name2;
select * from demo2 order by name;
posted @ 2018-01-10 23:05  journeyIT  阅读(12)  评论(0编辑  收藏  举报