版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
字符集比较好理解,我们重点讲一下校对规则
该文章参考了:https://blog.csdn.net/timchen525/article/details/75194503
CREATE TABLE IF NOT EXISTS tbl_alter_table(
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL COLLATE utf8_bin,
PRIMARY KEY(id)
)ENGINE INNODB DEFAULT CHARSET=utf8;
整个表的字符集我们设置为utf8
,utf8
的默认校对规则是utf8_general_ci
,这个校对规则是不区分大小写的
然后我们插入两条数据:
INSERT INTO tbl_alter_table (name) values ('tim');
INSERT INTO tbl_alter_table (name) values ('TIM');
SELECT * FROM tbl_alter_table WHERE name='tim';
在上面我们给name
字段设置了COLLATE
为utf8_bin
,即区分大小写,这时的结果应该是:
mysql> SELECT * FROM tbl_alter_table WHERE name='tim';
+----+------+
| id | name |
+----+------+
| 1 | tim |
+----+------+
1 row in set (0.00 sec)
然后我们删除刚才创建的表,重新创建一下,这次我们把name
字段的COLLATE
设置为utf8_general_ci
,即不区分大小写,这时我们执行select
查询,应该会得到两条结果:
mysql> SELECT * FROM tbl_alter_table WHERE name='tim';
+----+------+
| id | name |
+----+------+
| 1 | tim |
| 2 | TIM |
+----+------+
2 rows in set (0.00 sec)