`
cppmule
  • 浏览: 449059 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

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

分享到:
评论

相关推荐

    0积分:MySql表名大小写的问题.txt

    ### MySQL表名大小写敏感性问题详解 #### 标题:0积分:MySql表名大小写的问题 #### 描述:MySql表名大小写的问题 #### 标签:mysql 大小写 #### 部分内容摘要: > 在MySQL环境中,表名的大小写敏感性是一个常见...

    MySql下实现查询表名不区分大小写

    在Linux环境下,MySQL默认会区分数据库名、表名以及列名的大小写,这可能会导致在跨平台迁移或维护时的不便。通过在`my.cnf`配置文件中设置`lower_case_table_names=1`,并重启MySQL服务,可以轻松地改变这一行为,...

    Linux系统MySQL忘记密码,重置密码,忽略表名、列名大小写的方法

    同时,根据需要,你可以调整`lower_case_table_names`设置来改变MySQL对表名和列名大小写的处理方式。请确保在完成密码重置和配置更改后,正确地重启MySQL服务以应用这些更改。记住,良好的数据库管理实践包括定期...

    mysql表名忽略大小写配置方法详解

    MySQL数据库在处理表名、数据库名以及列名时的大小写规则可能会因操作系统的差异而有所不同。在Linux系统中,默认情况下MySQL是区分大小写的,而在Windows系统中则通常是不区分大小写的。对于开发者来说,保持一致性...

    mysql大小写敏感

    MySQL 中的大小写敏感性是指数据库名、表名、列名、别名等在不同的操作系统平台上的大小写规则。 MySQL 在 Linux 下默认情况下是严格区分表名和数据库名的大小写,而在 Windows 下则不区分大小写。 在 Linux 下,...

    MySQL的SQL语句大小写不敏感问题解决方案

    MySQL 的 SQL 语句大小写不敏感问题解决方案 MySQL 的 SQL 语句大小写不敏感问题是一...MySQL 的 SQL 语句大小写不敏感问题是一个需要注意的问题,通过设置表名的大小写规则和字段的 BINARY 属性,可以解决这个问题。

    LINUX系统下mysql的大小写区分问题.docx

    在Windows系统中,MySQL通常不区分数据库名、表名和列名的大小写,但在Linux环境下,情况则有所不同。 首先,当在Linux上安装MySQL后,其默认配置是区分表名的大小写,但不区分列名的大小写。这意味着在创建数据库...

    MySQL数据库大小写敏感的问题

    在MySQL中,列名和列别名通常在所有情况下都是忽略大小写的,这意味着查询语句中的列名大小写不必严格匹配。但是,如果你需要在查询时区分字段值的大小写,可以使用`BINARY`关键字。例如: 1. 创建表时指定列类型为...

    MySQL修改配置 区分大小写

    MySQL是一种广泛使用的开源关系型数据库管理系统,其默认配置在处理表名、列名以及数据库名时通常是不区分大小写的。然而,根据业务需求,有时我们需要让MySQL对这些名称进行大小写敏感的处理,例如在开发多语言应用...

    mysql基础-不设置区分大小写

    在某些情况下,用户可能希望数据库在处理表名、列名或索引时不区分大小写,这通常是为了简化输入或者与特定编程语言的习惯保持一致。在本文中,我们将探讨如何在Windows和Linux操作系统上设置MySQL使其不区分大小写...

    数据库区分大小写的设置

    SQL Server默认情况下对标识符(例如表名、列名等)是不区分大小写的。然而,在某些场景下,用户可能希望启用大小写敏感性。这可以通过定义一个特定的排序规则(Collation)来实现。 例如,在SQL Server中创建或...

    mysql ,oracle 数据库命名规范

    1. **大小写敏感**:MySQL 在大多数情况下是区分大小写的,因此,表名`myTable`和`mytable`会被视为不同的对象。在创建表时,建议使用下划线分隔单词,如`my_table`,以增加可读性。 2. **长度限制**:表名、列名的...

    Mysql大小写敏感的问题

    在Windows系统中,MySQL通常不区分表名的大小写,但当你将数据从Windows迁移到Linux系统时,可能会遇到问题,因为Linux系统是区分大小写的。默认情况下,Linux下的MySQL配置`lower_case_table_names`参数为0,意味着...

    thinkphp 表名 大小写 窍门

    MySQL默认情况下,不区分表名和列名的大小写,除非你在创建数据库时指定了`lower_case_table_names`系统变量。这个变量决定了数据库在存储表名和索引名时是否转换为小写。在大多数Linux系统中,这个变量通常设为1,...

    数据库建表快捷转换大小写.rar

    3. **SQL语句中的大小写**:在编写SQL语句时,虽然数据库系统可能不区分大小写,但推荐始终使用大写关键字(如`SELECT`, `FROM`, `WHERE`等),而将表名和列名设置为小写或统一的命名约定,以提高代码的可读性。...

    MySQL在Ubuntu系统上的安装配置

    默认情况下,MySQL区分表名和列名的大小写。如果希望MySQL不区分大小写,可以进行以下配置: 1. **编辑MySQL配置文件** 打开`/etc/mysql/mysql.conf.d/mysqld.cnf`文件,在`[mysqld]`段落中添加以下行。 ```...

    MySQL基础知识.docx

    SQL语法规定,命令以英文分号结束,不区分大小写,但推荐关键字大写,其他小写。注释可以使用`#`或`/* ... */`。如果一个语句出错,后续命令将不会执行。 MySQL的常用SQL命令包括: 1. 丢弃数据库:`Drop database ...

    详解MySQL查询时区分字符串中字母大小写的方法

    值得注意的是,MySQL在处理关键字、表名和列名时的大小写规则受到操作系统的直接影响。在大多数Unix-like系统中,这些标识符是不区分大小写的,但在Windows系统中,它们通常是区分大小写的。然而,这并不是绝对的,...

Global site tag (gtag.js) - Google Analytics