ITPub博客

首页 > 数据库 > MySQL > MySQL的大小写敏感

MySQL的大小写敏感

原创 MySQL 作者:T1YSL 时间:2025-08-13 17:46:40 0 删除 编辑

1.和数据库名字、表名字、存储过程和触发器有关

Mysql中控制数据库名和表名的大小写敏感是由参数 lower_case_table_names控制,

为0时;

表示区分大小写,使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母在硬盘上保存表名和数据库名。

名称比较对大小写敏感。在大小写不敏感的操作系统如windows或Mac OS x上我们不能将该参数设为0,如果在

大小写不敏感的文件系统上将--lowercase-table-names强制设为0,并且使用不同的大小写访问MyISAM表名,

可能会导致索引破坏。

 

为1时;

表示将名字转化为小写后存储,名称比较对大小写不敏感。MySQL将所有表名转换为小写在存储和查找表上。

该行为也适合数据库名和表的别名。该值为Windows的默认值。

 

为2时;

表名和数据库名在硬盘上使用CREATE TABLE或CREATE DATABASE语句指定的大小写字母进行保存,但MySQL将它们

转换为小写在查找表上。名称比较对大小写不敏感,即按照大小写来保存,按照小写来比较。注释:只在对大小

写不敏感的文件系统上使用! innodb表名用小写保存。

 

如果你使用innodb表,为了避免避免大小写敏感问题,可以把lower_case_table_names=1

 

把 lower_case_table_names从0改变为1

在你把lower_case_table_names设置为1时,在restart你的mysqld之前,请把数据库名和表名更改为小写

 mysql> RENAME TABLE T1 TO t1;

 

2.和字段名字有关

字段名是不区分大小写的

 

3.和字段值有关,用于字符串比较

字段值的大小写由Mysql的collate来控制。提到collate,就不得不说字符集。字符集是一套符号和编码,collate

是在字符集内用于比较字符的一套规则,比如定义'A'<'B'这样的关系的规则。不同的字符集有多种校对规则,一般

而言,collate以其相关的字符集名开始,通常包括一个语言名,并且以_ci(大小写不敏感)、_cs(大小写敏感)

或_bin(二元)结束 。

 

比如 utf8字符集:

utf8_general_ci,表示不区分大小写,这个是utf8字符集默认的collate;

utf8_general_cs表示区分大小写,

utf8_bin表示二进制比较,同样也区分大小写。

 

4. 在查询时指定大小写

root@localhost [test]> select * from t where custid like 'a%';
+---------+------------+-------+--------+-----+
| orderid | orderdate  | empid | custid | qty |
+---------+------------+-------+--------+-----+
|       1 | 2010-01-02 |     3 | A      |  10 |
|       3 | 2010-05-02 |     1 | A      |  30 |
|       5 | 2011-01-02 |     4 | A      |  20 |
|       8 | 2009-01-02 |     2 | A      |  10 |
+---------+------------+-------+--------+-----+
select * from t where custid like binary 'a%';
Empty set (0.00 sec)

或者

create table t1 like t;
alter table t1 modify custid varchar(10) binary;
insert into t1 select * from t;
select * from t1 where custid like 'a%';
Empty set (0.00 sec)

 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69990629/viewspace-3093392/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: MySQL的plugin安装
请登录后发表评论 登录
全部评论
中国开源软件推进联盟PG分会系列技术丛书《快速掌握PostgreSQL版本新特性》一书副主编。数据库技术专家。数据库认证讲师、恩墨学院数据库讲师。擅长MySQL数据库、PostgreSQL等开源数据库。拥有MySQL-OCP 、PostgreSQL-PGCM等数据库认证。

注册时间:2020-12-12

  • 博文量
    152
  • 访问量
    160730