博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql的大小写敏感性
阅读量:6544 次
发布时间:2019-06-24

本文共 1429 字,大约阅读时间需要 4 分钟。

MYSQL在默认的情况下查询是不区分大小写的,例如:
CREATE TABLE T1(
NAME VARCHAR(10)
);
对这个表,缺省情况下,下面两个查询的结果是一样的:
SELECT * FROM T1 WHERE A=''ABC'';
SELECT * FROM T1 WHERE A=''Abc'';
也就是说不区分大小写,而在数据库设计的时候,可能需要大小写敏感,解决方法是建表时候使用BINARY标示。
CREATE TABLE T1(
NAME VARCHAR(10) BINARY
);
或者使用BINARY关键字:
SELECT * FROM T1 WHERE A=BINARY ''ABC'';
SELECT * FROM T1 WHERE A LIKE BINARY ''%Abc%'';
另外,在 MySQL 中,数据库和表对应于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。
尽管在 Windows 中数据库与表名是忽略大小写的,你不应该在同一个查询中使用不同的大小写来引用一个给定的数据库和表。下面的查询将不能工作,因为它以 my_table 和 MY_TABLE 引用一个表:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
列名与列的别名在所有的情况下均是忽略大小写的。
表的别名是区分大小写的。下面的查询将不能工作,因为它用 a 和 A 引用别名:
mysql> SELECT col_name FROM tbl_name AS a WHERE a.col_name = 1 OR A.col_name = 2;
(但是,在我的mysql5.0.x里面:
SELECT * FROM uab_corp_userinfo AS UCU where ucu.LOGINUSERID = ''CAiBoWeiAAB@myce.net.cn'' AND UCU.CORPIID=2 ;
是可以正确运行的。可能是在windows下的原因吧。)
如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。
避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。如果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。
也可以通过在MySQL的配置文件my.ini中增加一行:
lower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写
MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。

转载地址:http://trodo.baihongyu.com/

你可能感兴趣的文章
怎样使用原型设计中的组件样式功能
查看>>
python threading
查看>>
谷安天下2013年6月CISA考前辅导 第一季
查看>>
ARM程序规范
查看>>
我的友情链接
查看>>
Qt下的OpenGL 编程(8)文字、FPS、动画
查看>>
Android开发入门系列
查看>>
说清楚讲明白vxlan在openstack中的使用场景
查看>>
RHCE 学习笔记(36) - MariaDB
查看>>
文件删除封装,懒得以后再写了
查看>>
Linux 脚本之用户创建
查看>>
Mysql字段类型设计相关问题!
查看>>
Xshell 密钥登陆
查看>>
所见不为真--图片格式文件检测python
查看>>
分享几种常用的嵌入式Linux GUI及其特点—干货
查看>>
Confluence 6 "Duplicate Key" 相关问题解决
查看>>
第18章 使用MariaDB数据库管理系统
查看>>
浅谈MySQL的B树索引与索引优化
查看>>
数据库迁移工具
查看>>
【喜报】HCIE--PASS !最可怕的敌人,就是没有坚强的信念!
查看>>