`

Mysql区分大小写问题

阅读更多

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

MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。

 

WINDOWS:
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。

LINUX:
编辑/etc/my.cnf文件,在[mysqld]节下 添加 lower_case_table_names 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)

----------------------------------------------------

 

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

1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;

 

MySQL在Windows下都不区分大小写。
 
MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,这个字符集对大小写不敏感,因此在比较过程中中文编码字符大小写转换造成了这种现象。

2.解决办法

A.表名区分大小写

 

在my.conf加入:

ower_case_table_names = 0
其中 0:区分大小写,1:不区分大小写

 

B.插入查询时区分大小写

 

字段值需要设置BINARY属性,即可区分大小写。

 

设置的方法有多种:

创建时设置: 
CREATE TABLE T( 
A VARCHAR(10) BINARY 
);

 

使用alter修改: 
ALTER TABLE `tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;
mysql table editor中直接勾选BINARY项。
分享到:
评论

相关推荐

    有关MySQL8.0大小写敏感的问题

    ### MySQL 8.0 大小写敏感性问题详解 #### 一、引言 MySQL 8.0作为MySQL数据库的重要版本更新,引入了一系列的新特性与优化改进,其中包括对数据库和表名大小写敏感性的调整。这一变化对于新老用户来说都需要一定...

    使MySQL查询区分大小写.doc

    在MySQL中,查询默认情况下通常是不区分大小写的,但如果你想让你的查询对大小写敏感,有几种方法可以实现。以下是一些关键知识点和步骤来帮助你在MySQL中进行区分大小写的查询。 1. **设置列的Collation** - **...

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

    需要注意的是,尽管可以通过这些方法来控制大小写敏感性,但最佳实践是始终以一种一致的方式编写数据库对象的名称,避免因大小写问题引发的混淆和错误。在开发和维护过程中,保持命名规范和一致性至关重要,尤其是当...

    数据库区分大小写的设置

    通过对SQL Server和MySQL中区分大小写的设置进行深入了解,我们可以更好地根据实际需求调整数据库的行为。无论是创建表时指定字段属性、查询时动态控制还是更改现有表的设置,这些方法都为我们提供了灵活的手段来...

    mysql大小写敏感

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

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

    同时,在查询字符串时,MySQL 是大小写不敏感的,这也会导致大小写问题的产生。 在实际应用中,这个问题可能会引起一些问题,例如在插入数据时可能会发生 Duplicate entry Error,或者在查询时返回的结果不正确。...

    MySql查询不区分大小写解决方案(两种)

    本文将详细介绍两种解决MySQL查询不区分大小写问题的方法。 **方法一:使用BINARY函数** 在查询语句中,你可以使用BINARY函数来强制进行区分大小写的比较。BINARY关键字将字符串转换为二进制形式,从而进行字节...

    MySQL修改配置 区分大小写

    需要注意的是,如果你的应用程序已经习惯了不区分大小写的模式,切换到区分大小写可能导致一些问题,比如找不到已存在的表或列。因此,在进行这种改变之前,务必对现有的数据库结构进行检查,并确保所有的引用都是大...

    MySQL表名不区分大小写的设置方法

    此外,尽管设置为1可以使MySQL在逻辑上不区分大小写,但为了保持一致性,建议在定义表名和编写SQL语句时始终使用小写,避免因大小写问题引起不必要的困扰。 在开发过程中,特别是涉及跨平台的应用,了解并适当地...

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

    在本文中,我们将探讨如何在Windows和Linux操作系统上设置MySQL使其不区分大小写。 首先,我们要了解`lower_case_table_names`这个配置选项。这是一个用于控制MySQL服务器如何处理表名和数据库名大小写的参数。当`...

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

    - 这种做法可以在大多数环境中避免大小写问题。 ### 总结 理解MySQL中表名的大小写敏感性及其背后的原因对于确保数据的一致性和避免潜在错误至关重要。通过正确配置`lower_case_table_names`参数并根据实际情况...

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

    在Linux系统中,默认情况下,MySQL是严格区分大小写的,这与Windows环境下的行为形成鲜明对比,后者默认不区分大小写。本文将深入探讨如何在Linux下通过修改MySQL配置,使查询操作中表名的大小写变得不敏感。 ### ...

    mysql如何设置不区分大小写

    mysql设置不区分大小写 windows下 到安装mysql的目录,修改my.ini文件 在文件最后一行加上下面一句话 lower_case_table_names=1 说明 0:区分大小写,1:不区分大小写 效果如下 [mysqld] port = 3306 basedir=F...

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

    MySQL查询时区分字符串中字母大小写的方法主要涉及字符集(character set)和校对规则(collation)。MySQL默认的行为是不区分字符串中的字母大小写...理解字符集和校对规则对于在MySQL中正确处理大小写问题至关重要。

    PostgreSQL数据库对象名大小写敏感的解决方法

    ### PostgreSQL数据库对象名大小写敏感的解决方法 在IT领域,特别是数据库管理中,了解不同数据库管理系统...在PostgreSQL中,遵循上述指导原则可以有效避免因大小写问题导致的错误,确保数据查询和操作的顺利进行。

    mysql查出数据不区分大小写.md

    mysql查出数据不区分大小写.md

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

    1. `lower_case_table_names = 0`:在这种模式下,MySQL区分大小写。表名在数据库中以用户输入的大小写形式存储,并在查询时保持大小写敏感。这是默认设置。 2. `lower_case_table_names = 1`:在这个配置下,MySQL...

Global site tag (gtag.js) - Google Analytics