MySQL数据库中字符的类型是否区分大小写

  介绍

这篇文章给大家介绍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数据库中字符的类型是否区分大小写就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

MySQL数据库中字符的类型是否区分大小写