MYSQL中的字符集和校对规则

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/include_heqile/article/details/93401883

字符集比较好理解,我们重点讲一下校对规则

该文章参考了: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;

整个表的字符集我们设置为utf8utf8的默认校对规则是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字段设置了COLLATEutf8_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)

猜你喜欢

转载自blog.csdn.net/include_heqile/article/details/93401883