`
469957559
  • 浏览: 39890 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

MySQL数据库表名、列名、别名区分大小写的问题

阅读更多

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

    mysql大小写敏感

    MySQL 在 Linux 下默认情况下是严格区分表名和数据库名的大小写,而在 Windows 下则不区分大小写。 在 Linux 下,MySQL 的默认设置是区分表名的大小写,不区分列名的大小写。可以通过添加 lower_case_table_names=...

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

    MySQL数据库在处理数据库名、表名以及列名时的大小写敏感性问题是一个常见的困扰,尤其是在跨不同操作系统环境时。MySQL的行为受所运行的操作系统的影响,因为数据库名和表名实际上对应于数据目录中的文件名。在...

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

    在 Linux 下,数据库名、表名、列名、别名的大小写规则是严格区分的,而在 Windows 下则不区分大小写。同时,在查询字符串时,MySQL 是大小写不敏感的,这也会导致大小写问题的产生。 在实际应用中,这个问题可能会...

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

    - **数据库名**和**表名**是严格区分大小写的。如果你在创建数据库或表时使用了特定的大小写,那么在后续的查询中必须保持一致。 - **表的别名**也是严格区分大小写的。这意味着在`AS`关键字后的别名必须与定义时...

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

    MySQL是一种广泛使用的开源关系型数据库管理系统,其默认配置在处理字符串时通常是不区分大小写的,这对于某些场景,比如实现特定的搜索逻辑或满足特定的数据唯一性要求,可能会造成困扰。本篇文章将深入探讨如何在...

    第03章_基本的SELECT语句.docx

    在 MySQL 中,数据库名、表名、表的别名、变量名是严格区分大小写的,而关键字、函数名、列名(或字段名)、列的别名(字段的别名)是忽略大小写的。 为提高代码的可读性,建议使用统一的书写规范,例如数据库名、...

    sql教程

    例如,在Oracle和MySQL中,表名和列名通常不区分大小写,但值是区分大小写的。 4. **运算符和比较**: - `<>`, `!=`: 不等于 - `BETWEEN`: 在两个值之间(包含这两个值) - `IS NULL`, `IS NOT NULL`: 检查值...

    sql语言分类和编写规则

    在Oracle中,表名和列名通常区分大小写,而在MySQL中,默认情况下不区分大小写。 - **语句结束符**: 在多数系统中,SQL语句以分号`;`结尾,但在某些交互式环境中,如SQL*Plus(Oracle的命令行工具),可以省略分号。...

    数据库sql基础入门.pdf

    * 不区分大小写,但建议关键字大写,表名、列名小写。 * 每条命令最好用分号结尾。 * 每条命令根据需要,可以进行缩进或换行。 * 注释:单行注释使用 `#` 或 `--`,多行注释使用 `/* */`。 DQL 基础查询 * 语法:`...

    SLQ法则.docx

    1-5 SQL语句以分号结束,且不区分大小写,但数据库中的数据是区分大小写的。 在命名规则方面,1-9和1-10强调了数据库名、表名和列名的命名规范,它们必须以字母开头,可以包含字母、数字和下划线,并且名称必须唯一...

    MySQL基础语法

    - MySQL中的关键字(如 `SELECT`, `FROM`, `WHERE` 等)不区分大小写,但为了提高可读性和一致性,建议使用大写字母表示关键字。 - 表名和列名通常使用小写字母。 - 每条SQL命令末尾通常加上分号 `;` 来表示该命令的...

    MySQL的语法及其使用指南

    3. 列名、索引名和别名区分大小写。 九、数据表类型详解 1. ISAM:旧式表类型,已被MyISAM取代。 2. MyISAM:默认表类型,支持大文件,提供全文搜索,易于移动和备份。 3. Merge:组合多个MyISAM表为一个逻辑表。 4...

    数据库教程

    - SQL语句区分大小写不敏感,但为了清晰和一致性,通常将SQL关键字大写,而表名和列名小写。 - **SQL SELECT语句**: - **基本格式**:`SELECT column_name(s) FROM table_name;` - 用于从数据库中选取数据。...

    2009达内SQL学习笔记

    起别名有符号,或者区分大小写时,必须用双引号) 多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。 如:Select first_name EMPLOYEES, 12*(salary+100) AS MONEY, ...

Global site tag (gtag.js) - Google Analytics