字符集与校对集
create table 表名(
列声明
)charset utf8;
上面这个charset utf8指定服务器字符类型。
-----------------------------------------------
字符集:
mysql的字符集设置非常灵活。
可以设置服务器默认字符集,
可以设置数据库默认字符集,
表默认字符集,
列字符集,
如果某一个级别没有指定字符集,则继承上一级。
1.告诉服务器,我给你发的数据是什么编码的?set character_set_client=utf8
2.告诉转换器,转换成什么编码?set character_set_connection=utf8
3.查询的结果用什么编码?set character_set_results=utf8
以上三者都为字符集N,那么可以简写成 set names N
------------------------------------------------------
校对集:指字符集的排序规则
一种字符集可以有一个或者多个排序规则
以UTF8为例,我们默认使用的是UTF8_general_ci,
也可以按ASCII来排,utf8_bin
怎么样声明校对集?
create table()charset utf8 collate utf8_bin
注意:声明的校对集必须是字符集合法的校对集。
例1,建表时不指定校对集,默认是不分大小写的utf8_general_ci,如:
create table tmp (name char(5));
insert into tmp values ('a'),("B"),("c"),("D");
select * from tmp order by name;
+------+
| name |
+------+
| a |
| B |
| c |
| D |
+------+
例2,建表时指定校对集:
create table tmp (name char(5))charset utf8 collate utf8_bin;
insert into tmp values ('a'),("B"),("c"),("D");
select * from tmp order by name;
+------+
| name |
+------+
| B |
| D |
| a |
| c |
+------+
转载于:https://blog.51cto.com/1154179272/1653262