这节课有点不是很懂,需要知道 字符集 校对规则等概念
校对规则:
每一套编码字符集都有与之相关的校对规则。
什么是校对规则?
在当前编码下,字符之间的比较顺序。
字符之间的比较关系:
1,ci表示不区分大小写。
2,Cs表示区分大小写。
每个字符集都支持不定数量的校对规则,
可以通过如下指令:
Show collation;
可以看到:
字符集_地区名_比较规则(ci,cs,bin)不区分,区分,字节比较。
可以用 like。查看某种字符集。
Order by (字段),可以获得数据时,将数据按照某个字段进行排列搜索。
影响数据如何保存的是 字符集。
影响数据如何排序的是 校对规则。
例如:a B c 中
不区分: a<B<c;
区分:B<a<c;
bin: B<a<c;
中文需要用gbk才能按照字母排序,而utf8则需要其他的规则来规定。
校对规则:
每一套编码字符集都有与之相关的校对规则。
什么是校对规则?
在当前编码下,字符之间的比较顺序。
字符之间的比较关系:
1,ci表示不区分大小写。
2,Cs表示区分大小写。
每个字符集都支持不定数量的校对规则,
可以通过如下指令:
Show collation;
可以看到:
字符集_地区名_比较规则(ci,cs,bin)不区分,区分,字节比较。
可以用 like。查看某种字符集。
show variables like 'character_set%'; //查看字符集的校对规则
show databases;
use php_one;
show tables;
create table tbl1(
name varchar(5)
)character set gbk collate gbk_chinese_ci;
create table tbl2(
name varchar(5)
)character set gbk collate gbk_bin; //表的选项,(属性)。
insert into tbl1 values('a');
insert into tbl1 values('B');
insert into tbl1 values('c');
insert into tbl2 values('a');
insert into tbl2 values('B');
insert into tbl2 values('c');
select * from tbl1;
select * from tbl2; //此时并没有排序。
select * from tbl1 order by name;
select * from tbl2 order by name; //已经排序
//最后显示一下表的属性。
show create table tbl1; //默认了,没有显示。
show create table tbl2;
Order by (字段),可以获得数据时,将数据按照某个字段进行排列搜索。
影响数据如何保存的是 字符集。
影响数据如何排序的是 校对规则。
例如:a B c 中
不区分: a<B<c;
区分:B<a<c;
bin: B<a<c;
中文需要用gbk才能按照字母排序,而utf8则需要其他的规则来规定。
因而只进行中文编码:推荐使用bgk编码;(字节:2字节 utf8:3字节)