引言

后端开发,会时不时地和数据库打交道,mysql 数据库作为开源数据库,市场占有率相当高,很有研究和学习的价值。

在之前的博客中也提到了 mysql 数据库的一些常用的操作和介绍,在这里聊一聊数据库大小写的问题。mysql 开发过程中有可能会添加外键,遇到问题不妨先看看字段大小写是否匹配。

大小写规则

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

1、数据库名与表名是严格区分大小写的;

2、表的别名是严格区分大小写的;

3、列名与列的别名在所有的情况下均是忽略大小写的;

4、变量名也是严格区分大小写的。

MySQL在Windows下都不区分大小写。

所以在不同操作系统中为了能使程序和数据库都能正常运行,最好的办法是在设计的时候都转为小写,但是如果在设计的时候已经规范化大小写了,那么在 Windows 环境下只要对数据库的配置做下改动就行了,具体操作如下:

在MySQL的配置文件中 my.ini [mysqld] 中增加一行

lower_case_table_names = 1

参数解释:

  • 0:区分大小写
  • 1:不区分大小写

实例说明

建立 usertable:

create table `usertable`( `id` varchar(32) binary,PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

建立 mytable 并使用外键:

create table `mytable`( `id` varchar(32) binary,`uid` varchar(32) binary,PRIMARY KEY (`id`),CONSTRAINT `user_1` FOREIGN KEY (`uid`) REFERENCES `usertable` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

如果在 mytable 表中,外键关联的时候 usertable 错误写成 “userTable” 或者其它形式,则会关联失败。

总结

由上可以看出大小写对 mysql 有很大的影响。开发过程中,应该尽量按大小写敏感的原则去开发。

开发过程中可以把 lower_case_table_names 的值设为 0,便于控制代码大小写敏感,提高代码的兼容性和严谨性。

参考

https://www.cnblogs.com/50614090/archive/2011/07/25/2116330.html

MySQL 数据库大小写的问题相关推荐

  1. linux下的mysql数据库大小写问题

    最近做一个java项目,开发环境是安装在windows下,使用mysql没有任何问题,部署环境采用linux,用mysqldump把数据库导入linux后程序报找不到数据表,很郁闷,google一番后 ...

  2. linux下改变Mysql数据库大小写的设置

    1,查看大小写参数 show variables like '%table_names' 2,如果lower_case_table_names参数为1,说明不区分大小写了 3,lower_case_t ...

  3. mysql语句大小写要求_mysql踩坑(一)-大小写规则

    mysql大小写 在实际的项目中,大家或多或少都会遇到过mysql数据库大小写的问题.下面,博主将简单的介绍一下mysql数据库的大小写问题. sql关键字和函数名 在mysql数据库中,sql关键字 ...

  4. 将现有MySQL数据库改为大小写不敏感

    用过MySQL的应该都会注意到,默认情况下,Linux下安装的MySQL是大小写敏感的,也就是说Table1和table1可以同时存在.而Windows下的MySQL却是大小写不敏感的,所有表名和数据 ...

  5. mysql 密码大小写_MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写...

    MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密 还有函数:AES_ENCRYPT()加密函数和 ...

  6. mysql数据库表名大小写敏感_Mysql数据库名和表名的大小写敏感性问题

    导读:一直以来,Mysql数据库名和表名的大小写都是个敏感的问题,困扰着Mysql数据库管理员.在 MySQL 中,数据库和表对应于那些目录下的目录和文件.因而,操作系统的敏感性决定数据库和表命名的大 ...

  7. 0基础学MySQL数据库—从小白到大牛(20)大小写规范、sql_mode的合理设置

    文章目录 一.SQL大小写规范 Windows和Linux平台区别 Linux下大小写规则设置 SQL编写建议 二.sql_mode的合理设置 介绍 宽松模式 vs 严格模式 模式查看和设置 一.SQ ...

  8. MySQL数据库忽略大小写

    首先我们需要明白的一点就是: Linux 系统默认情况下MySQL数据库是区分大小写的, Windows系统默认情况下MySQL数据库是不区分大小写的. 1. 查看数据库大小写配置 show vari ...

  9. mysql 表名批量转大写_(转)mysql数据库表名批量修改大小写

    由于不用服务器对mysql的表名的大小写敏感要求不一致,经常在出现线上的数据库down到了本地不能运行的情况,贴出一段代码用来批量修改数据库表名大小写. DELIMITER // DROP PROCE ...

最新文章

  1. Linux多线程管理: 多线程编程
  2. nvidia命令不可用linux,在Linux命令行下如何正确配置nVIDIA显卡
  3. R语言Logistic回归模型亚组分析森林图(forest plot)绘制
  4. Java提高—对象克隆(复制)/对象属性拷贝
  5. Android 4.2 通知通过PendingIntent启动Activity失败的问题
  6. linux 查看cpu_作为高级Java,你应该了解的Linux知识
  7. 北邮-上机-提交错误解决及一些经验
  8. 三维数据平滑处理_黑白象片的密度信息 卫星数据处理 遥感制图 三维建模 善图科技...
  9. js 字符串插入_Vue.js 条件与循环
  10. Java深入 - servlet和Spring的DispatcherServlet详解
  11. 首次结算和汇总不一致
  12. mysql连接池设计_数据库连接池(基于MySQL数据库)
  13. ajax+++fc,06. 实做AJAX(SEFC)
  14. 年化收益17.1%!这个看基本面长线炒股的AI有点厉害
  15. pyodbc linux 乱码,关于python:无法在Linux上安装pyodbc
  16. IE设置每次打开时都清除缓存
  17. Forth语言简明教程
  18. 大学计算机课程教学建议,计算机应用基础课程教学的建议
  19. 计算机维修技术精解,《显卡维修知识精解——计算机维修技术精解》【价格 目录 书评 正版】_中图网...
  20. Hive的nvl函数

热门文章

  1. 如何及时获得AI顶尖科研团队的最新论文与进展?只需一份AI内参!
  2. 说一说MVC的CSRF(三)
  3. 微信小程序之圆形进度条(自定义组件)
  4. java的list类
  5. Math.Round()——面试题小结
  6. 查看mysql日志文件大小和数据库大小
  7. perl中的几个模块使用.
  8. 使用repeater,遍历数据,不规则排序,不同的样式之间切换
  9. 一个关于解决序列化问题的编程技巧
  10. koa 接口返回数据_一文搞定 Koa 中间件实现原理