介绍
这篇文章给大家介绍MySQL数据库中字符的类型是否区分大小写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
MySQL字符类型默认是不区分大小写的,即select *从t name=& # 39; aaa # 39;与=& # 39;aaa # 39;没区别,以下是测试的例子
(root@localhost)(你好)比;创建表test1 (int id,名称varchar (10)); (root@localhost)(你好)比;插入test1值(& # 39;aaa # 39;), (2, & # 39; aaa # 39;), (3 & # 39; bbb # 39;),(4日& # 39;bbb # 39;); (root@localhost)(你好)比;从test1 select *; + - - - - - - - - - - - - + | | | id名称 + - - - - - - - - - - - - + | 1 | 3 | | 2 | 3 | | 3 | bbb | | 4 | BbB | + - - - - - - - - - - - - + (root@localhost)(你好)比;select *从test1 name=& # 39; aaa # 39;; + - - - - - - - - - - - - + | | | id名称 + - - - - - - - - - - - - + | 1 | 3 | | 2 | 3 | + - - - - - - - - - - - - + (root@localhost)(你好)比;select *从test1 name=& # 39; aaa # 39;; + - - - - - - - - - - - - + | | | id名称 + - - - - - - - - - - - - + | 1 | 3 | | 2 | 3 | + - - - - - - - - - - - - + +
可以看到此时,条件后面的& # 39;aaa # 39;与& # 39;aaa # 39;,查出来的结果没啥区别。
如果只想找出& # 39;aaa # 39;的可以有以下几种办法
1。在sql中加入二进制关键字
(root@localhost)(你好)比;select * test1中二进制name=& # 39; aaa # 39;; + - - - - - - - - - - - - + | | | id名称 + - - - - - - - - - - - - + | 2 | 3 | + - - - - - - - - - - - - +
2。修改列的定义
先查看原始表的定义
(root@localhost)(你好)比;显示创建表test1 \ G *************************** 1。行 *************************** 表:test1 创建表:创建表的test1 ( “id”int(11)默认为空, “名字”varchar(10)默认为空 )引擎=InnoDB的默认字符集=utf8mb4
修改表test1的名字列
alter table test1修改列名varchar(10)字符集utf8mb4核对utf8mb4_bin违约零;
整理utf8mb4_bin表示,过滤或者按排序区分大小写
此时查看test1的定义
(root@localhost)(你好)比;显示创建表test1 \ G *************************** 1。行 *************************** 表:test1 创建表:创建表的test1 ( “id”int(11)默认为空, “名字”varchar(10)字符集utf8mb4核对utf8mb4_bin默认为空 )引擎=InnoDB的默认字符集=utf8mb4
接着再执行查询语句
(root@localhost)(你好)比;select *从test1 name=& # 39; aaa # 39;; + - - - - - - - - - - - - + | | | id名称 + - - - - - - - - - - - - + | 2 | 3 | + - - - - - - - - - - - - + +
下面再创建一张test2表,就会发现上面修改列的语句其实相当于在创建表时varchar后面跟二进制
(root@localhost)(你好)比;创建表test2 (int id、名称varchar(10)二进制); (root@localhost)(你好)比;显示创建表test2 \ G *************************** 1。行 *************************** 表:test2 创建表:创建表的test2 ( “id”int(11)默认为空, “名字”varchar(10)字符集utf8mb4核对utf8mb4_bin默认为空 )引擎=InnoDB的默认字符集=utf8mb4
<强>下面介绍如何设置字符大小写敏感强>
- <李>数据库级别设置字符大小写敏感李>
创建
创建数据库& lt; db_name>默认字符集utf8mb4核对utf8mb4_bin;
修改
改变数据库& lt; db_name>默认字符集utf8mb4核对utf8mb4_bin;
- <李>表级别设置字符大小写敏感李>
创建
创建表& lt; tb_name>( …… )引擎=innodb的默认字符集=utf8mb4整理=utf8mb4_bin;
修改
alter table & lt; tb_name>引擎=innodb默认字符集=utf8mb4整理=utf8mb4_bin;
- <李>列级别设置字符大小写敏感李>
创建
创建表& lt; tb_name>( field1的varchar(10)字符集utf8mb4核对utf8mb4_bin, …… )
修改
alter table & lt; tb_name>修改列field1的varchar(10)字符集utf8mb4核对utf8mb4_bin违约零;
继承关系是列,在表——在库,优先级是列在表的在库
关于MySQL数据库中字符的类型是否区分大小写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。