mysql区分大小写问题
【1】mysql 表的大小写和字段的大小写
数据库存储的varchar类型字符串查询时不区分大小写。
简而言之: 通过 show variables like 'lower_case_table_names'
查看值, 0代表严格区分, 1代表不区分,
通过修改mysql的配置my.cnf
文件更改然后重启,即可达到预期的效果。
【2】一些疑惑
(1)mysql 【表名】是否区分大小写?
使用dushow Variables like '%table_names’查看 lower_case_table_names 的值,0代表区分,1代表不区分。
mysql对于表名的策略与 varchar 类型数据相同。
即:默认不区分大小写,但如果该表是以“*_bin”编码的话会使mysql对其区分大小写。
(2)mysql 【字段名】是否区分大小写?
mysql对于字段名的策略与 varchar 类型数据相同。
即:默认不区分大小写,但如果该字段是以“*_bin”编码的话会使mysql对其区分大小写。
(3)mysql 【行内容】的是否区分大小写?
mysql对于类型为 varchar 数据默认不区分大小写,但如果该字段以“*_bin”编码的话会使mysql对其区分大小写。
如:列不显示写,就默认继承了表的字符集和排序规则,表不显示写就继承了数据库的字符集与排序规则,库不显示写,就继承了配置文件(即实例级别)的字符集与排序规则
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
(4)修改后,对现有表的影响?
如果现有表的字符集及排序规则与你要修改的不一样或不兼容,那么你无法改变这个表的属性;
比如:
本身有code字段,修改表的字符集为 utf8mb4_bin 后
再加CODE字段, utf8mb4_bin加不进去的;会报错
【3】Linux 与 Windows 下的默认区别
注意:表和字段的编码尽量继承数据库的编码(不明显指定即继承),以免引起混乱。
LINUX下的MYSQL默认是要区分表名大小写的 ,而在windows下表名不区分大小写
让MYSQL不区分表名大小写的方法其实很简单:
1.用ROOT登录,修改/etc/my.cnf
2.在[mysqld]下加入一行:lower_case_table_names=1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南