MySQL| MySQL大小写敏感问题

2024-06-09 12:08

本文主要是介绍MySQL| MySQL大小写敏感问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Mysql库表大小是否敏感与操作系统以及配置有关
  • Mysql列大小写不敏感
  • 大小写敏感-->不敏感
  • 注意事项
  • 查询语句字符串是否大小写敏感

Mysql库表大小是否敏感与操作系统以及配置有关

可以通过show variables like "%case%";查看当前Mysql关于大小写的设置,下面是我再Windows下执行的结果
在这里插入图片描述

参数说明:

  • lower_case_file_system
    该参数是用于描述mysql的数据目录data所在的操作系统是否为大小写敏感,该参数为bool类型,但无法修改。
    0 – 大小写敏感
    1 – 大小写不敏感
    比如跑在linux上的都是OFF或者0。

  • lower_case_table_names
    该参数为静态,可设置为0、1、2。

    0 – 大小写敏感。(Unix,Linux默认)
    创建的库表将原样保存在磁盘上。如create database TeSt;将会创建一个TeSt的目录,create table AbCCC …将会原样生成AbCCC.frm。
    SQL语句也会原样解析。

    1 – 大小写不敏感,全转成小写了。(Windows默认)
    创建的库表时,MySQL将所有的库表名转换成小写存储在磁盘上。
    SQL语句同样会将库表名转换成小写。
    如需要查询以前创建的Test_table(生成Test_table.frm文件),即便执行select * from Test_table,也会被转换成select * from test_table,致使报错表不存在。

    2 – 大小写不敏感(OS X默认)
    创建的库表将原样保存在磁盘上。但SQL语句将库表名转换成小写。
    这个比较难理解,就是说在你的建库或建表语句中,如果写的是大写那么保存在磁盘中的也是大写格式.但是当你再想创建同名的小写库或表时会提示你改库或表已经存在了.

Windows默认参数结果:
在这里插入图片描述
Linux默认参数结果:
在这里插入图片描述


Mysql列大小写不敏感

列名与列的别名在所有的情况下均是忽略大小写的,不管是Linux系统还是Windows凶下MySQL的列名都默认不区分大小写.
该测试在Windows下测试(配置为默认配置)
在这里插入图片描述


大小写敏感–>不敏感

如果原来所建立库及表都是对大小写敏感的,想要转换为对大小写不敏感,主要需要进行如下3步:
1.将数据库数据通过mysqldump导出。
2.在my.cnf中更改lower_case_table_name = 1,并重启mysql数据库。
3.将导出的数据导入mysql数据库。


注意事项

强烈建议:
为了避免大小写引发的问题,一种推荐的命名规则是:在定义数据库、表、列的时候全部采用小写字母下划线的方式,不使用任何大写字母.

在任何系统中可以使用lower_case_table_name=1。使用该选项的不利之处是当使用SHOW TABLES或SHOW DATABASES时,看不出名字原来是用大写还是小写。
请注意在Unix中如果以前lower_case_table_name = 0将lower_case_table_name设置为1之前,重启mysqld之前,必须先将旧的数据库名和表名转换为小写。

查询语句字符串是否大小写敏感

在mysql上字符串内容默认是不区分大小写的.
在这里插入图片描述
在这里插入图片描述

这篇关于MySQL| MySQL大小写敏感问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1045137

相关文章

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

Java中字符编码问题的解决方法详解

《Java中字符编码问题的解决方法详解》在日常Java开发中,字符编码问题是一个非常常见却又特别容易踩坑的地方,这篇文章就带你一步一步看清楚字符编码的来龙去脉,并结合可运行的代码,看看如何在Java项... 目录前言背景:为什么会出现编码问题常见场景分析控制台输出乱码文件读写乱码数据库存取乱码解决方案统一使

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

MySQL的JDBC编程详解

《MySQL的JDBC编程详解》:本文主要介绍MySQL的JDBC编程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、前置知识1. 引入依赖2. 认识 url二、JDBC 操作流程1. JDBC 的写操作2. JDBC 的读操作总结前言本文介绍了mysq

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1