字符集与校对集
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    |
+------+