MySQL中大小写区分问题

标签: mysql 大小写
5人阅读 评论(0) 收藏 举报
分类:

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

  1、数据库名与表名是严格区分大小写的;

  2、表的别名是严格区分大小写的;

  3、列名与列的别名在所有的情况下均是忽略大小写的;

  4、变量名也是严格区分大小写的;

  MySQL在Windows下都不区分大小写。

  所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在Windows环境下只要对数据库的配置做下改动就行了,具体操作如下:

  在MySQL的配置文件中my.ini [mysqld] 中增加一行

  lower_case_table_names = 1

  参数解释:

  0:区分大小写

  1:不区分大小写

在 MySQL 中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在 Windows 中是大小写不敏感的,而在大多数类型的 Unix 系统中是大小写敏感的。

奇怪的是列名与列的别名在所有的情况下均是忽略大小写的,而表的别名又是区分大小写的。

要避免这个问题,你最好在定义数据库命名规则的时候就全部采用小写字母加下划线的组合,而不使用任何的大写字母。

或者也可以强制以 -O lower_case_table_names=1 参数启动 mysqld(如果使用 --defaults-file=...\my.cnf 参数来读取指定的配置文件启动 mysqld 的话,你需要在配置文件的 [mysqld] 区段下增加一行 lower_case_table_names=1)。这样MySQL 将在创建与查找时将所有的表名自动转换为小写字符(这个选项缺省地在 Windows 中为 1 ,在 Unix 中为 0。从 MySQL 4.0.2 开始,这个选项同样适用于数据库名)。

当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

换句话说,如果你希望在数据库里面创建表的时候保留大小写字符状态,则应该把这个参数置0: lower_case_table_names=1 。否则的话你会发现同样的sqldump脚本在不同的操作系统下最终导入的结果不一样(在Windows下所有的大写字符都变成小写了)。

查看评论

MySQL中大小写问题

MySQL中大小写问题,如关键字、数据库、数据表、列、索引、视图、存储过程、函数、事件等大小写问题...
  • hsd2012
  • hsd2012
  • 2016-05-17 16:11:20
  • 1952

关于MySQL区分大小写问题的探究

先说遇到的问题:有个mysql实例跑了两个库,两套程序。其中一个库的表名全为大写,另一个库的表名全为小写。    表名为小写的这个库的程序里面写sql语句的时候有用大写的,运行时会提示找不到表。所以需...
  • kai404
  • kai404
  • 2016-08-10 10:33:09
  • 446

MySql数据库查询时大小写敏感问题

MySql数据库在查询时,默认是大小写不敏感的,如果项目需要对大小写敏感时,可以通过以下两种方式的任意一种完成。       一:修改需要对大小写敏感的表字段的字符校对规则Collation     ...
  • zhangap123
  • zhangap123
  • 2017-08-30 17:29:28
  • 233

MySql、Oracle中大小写转换

1.方法清单 方法 MySql Oracle 转换大写 upper()、ucase() upper() 转换小写 lower()、lcase() ...
  • hanchao5272
  • hanchao5272
  • 2018-01-30 15:56:10
  • 390

JAVA开发中出现MySQL数据库查询不区分大小写

初学者最近在弄一个小小的聊天软件,发现账号和密码在利用MySQL数据库查询的时候出现无法区分大小写,即数据库里面存在root用户名,密码为123。此时如果我输入ROOT作为用户名,密码为123。且RO...
  • u014621130
  • u014621130
  • 2014-07-20 00:04:27
  • 1037

Javaweb开发中,mysql数据库字段默认不区分大小写问题

1.问题    (1)近在做一个网站的注册和登录,密码字段因为用MD5算法,大小写生成的密文是完全不一样的,存入数据库的是密文,没有发现这个问题    (2)用户名存入的取出时,发现这种问题。即:数...
  • YU_rex
  • YU_rex
  • 2016-10-26 16:21:00
  • 963

mssql中大小写的区分

1.--区分大小写select * from a where a=’AbCdE’ collate Chinese_PRC_CS_AI--区分大小写select * from a where a=’ab...
  • qiaochenglei
  • qiaochenglei
  • 2010-08-27 15:12:00
  • 313

mysql不区分à与a或大小写的解决方法

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • w20175357
  • w20175357
  • 2016-09-08 13:18:43
  • 428

解决Linux下mysql区分表名大小写的问题

MySQL在Linux下采用 rpm方式安装后默认是:数据库名与表名\表的别名\变量名是严格区分大小写 1.用root帐号登录,/etc/mysql/my.cnf中的[mysqld]后添加lower...
  • howlaa
  • howlaa
  • 2013-10-31 09:50:55
  • 3505

MySQL表名、字段、查询大小写问题

一、MySQL表名、字段大小写区分设置数据库和表名在 Windows 中是大小写不敏感的 ,而在大多数类型的 Unix 系统中是大小写敏感的 Windows 版的 MySQL 默认继承 os 的大小...
  • yu757371316
  • yu757371316
  • 2017-06-03 15:16:14
  • 870
    个人资料
    持之以恒
    等级:
    访问量: 7152
    积分: 620
    排名: 8万+