mysql数据库大小写的问题讨论

数据库 MySQL
操作系统的敏感性决定数据库和表命名的大小写敏感,下文将对mysql数据库中的大小写问题进行深入探讨,供您参考。

mysql数据库大小写对于我们的使用都有什么影响呢?这的确是一个比较复杂的问题,下面就带您一同分析mysql数据库大小写问题,供您参考。

在MySQL中,数据库和表对就于那些目录下的目录和文件。因而,操作系统的敏感性决定数据库和表命名的大小写敏感。这就意味着数据库和表名在Windows中是大小写不敏感的,而在大多数类型的Unix系统中是大小写敏感的。一个特例是Mac OS X,当缺省的HFS+文件系统使用时。然而Mac OS X还支持UFS卷,那些在Mac OS X是大小写敏感的就如他们在任一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;

如果记忆数据库和表名的字母大小写有困难,建议采用一个一致一约定,例如总是以小写字母创建数据库和表。

避免这个问题的另一个办法就是以 -O lower_case_table_names=1 参数启动 mysqld。缺省地在 Windows 中这个选项为 1 ,在 Unix 中为 0。

如果 lower_case_table_names 为 1 ,MySQL 将在存储与查找时将所有的表名转换为小写字线。(从 MySQL 4.0.2 开始,这个选项同样适用于数据库名。) 注意,当你更改这个选项时,你必须在启动 mysqld 前首先将老的表名转换为小写字母。

$ pwd
/data1/etl/aiinsight/ScheduleServer/mysql/support-files
$ ./mysql.server stop
$ pwd
/data1/etl/aiinsight/ScheduleServer/mysql/bin
./mysqld_safe --lower_case_table_names

方法2:修改my.cnf配置文件   
      在[mysqld]节下加入  
      lower_case_table_names=1

以上就是mysql数据库大小写的问题分析。

 

 

【编辑推荐】

MySQL MyISAM表结构的恢复

MySQL多表联合查询语法示例

MySQL表别名的另类用法

三种mysql建表乱码的解决方法

显示MYSQL表信息的方法

责任编辑:段燃 来源: 互联网
相关推荐

2010-06-07 13:00:34

MySQL数据库

2010-11-25 16:09:58

mysql查询大小写

2021-06-04 10:30:41

MySQL表名大小

2010-06-04 20:04:10

MySQL数据库大小写

2011-03-30 10:05:04

Mysql数据库名表名

2010-05-11 13:25:18

Mysql大小写

2010-07-15 09:47:09

SQL Server数

2021-06-15 09:39:45

Oracle敏感数据库

2022-11-10 08:40:56

OracleMySQL

2017-06-12 16:10:05

MySQL表名

2010-10-11 15:47:46

MySQL字符串大小写

2010-11-26 11:40:19

MySQL字符串大小写

2010-05-26 15:24:09

MySQL字符串

2011-05-07 10:47:29

Oracle大小写

2011-08-30 10:10:30

UbuntuLinuxMySQL

2010-11-22 13:23:52

MySQL数据库优化

2019-09-23 20:00:34

MySQL数据库程序员

2010-10-27 17:16:51

Oracle查询

2009-06-21 13:44:21

LinuxTr大小写转换

2010-03-04 14:02:51

Python大小写
点赞
收藏

51CTO技术栈公众号