Mysql、Oracle区分大小写?

Mysql

  • Windows 系统的文件名不区分大小写,所以运行在 Windows 系统上面的 MySQL 服务器也不用区分数据库名和表名的大小写。
  • Linux 系统大小写规则:
    • 数据库名表名 严格区分大小写
    • 表的别名严格区分大小写
    • 变量名严格区分大小写
    • 列名列的别名 忽略大小写
  • MacOS 平台,其文件系统中的名字是个例外,它们不区分大小写

Linux 系统的文件名区分大小写,所以运行在 Linux 系统上的 MySQL 服务器需要区分数据库名和表名的大小写。可在配置文件 my.cnf 中添加选项 lower_case_table_names=1 使其表名不区分大小写。

想要避免大小写问题,可以先选定一种大小写方案,然后一直按照该方案去创建数据库和表。

在阿里巴巴 Java 开发手册的 MySql 建表规约里提到:

【强制】表名、字段名必须使用小写字母数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑。

通俗的说就是,MySQL 在 Windows 系统下不区分大小写,但在 Linux 系统下默认区分大小写。因此,数据库名、表名和字段名,都不允许出现任何大写字母,避免节外生枝。

Oracle

Oracle 不区分大小写 ,默认全是大写。Oracle会把表名、字段名全部转化为大写形式 然后写入数据字典;如果需要区分大小写,使用双引号 " ",强制区分大小写。

访问数据字典时,如果没有双引号 " ",Oracle会将其转化成大写形式 然后再去数据字段中查找。如果加上双引号 " "则能区分大小写。

不仅仅关键字不区分大小写,函数名、过程名、表名称、pl/sql块中变量名、用户名、密码等都不区分大小写。所以在Oracle中,还是建议全部用大写

总之,Oracle 默认情况下是不区分大小写的,但在使用双引号 " "括起来的标识符时,是区分大小写的。

相关推荐
元亓亓亓1 小时前
考研408--操作系统--day4--进程同步&互斥&信息量机制
java·数据库·考研·操作系统·408
武子康1 小时前
Java-169 Neo4j CQL 实战速查:字符串/聚合/关系与多跳查询
java·开发语言·数据库·python·sql·nosql·neo4j
现在,此刻1 小时前
高可用与高性能数据库配置实践分析(pgSql && clickhouse)
数据库·clickhouse
程序员卷卷狗1 小时前
MySQL 慢查询优化:从定位、分析到索引调优的完整流程
android·mysql·adb
谅望者2 小时前
数据分析笔记02:数值方法
大数据·数据库·笔记·数据挖掘·数据分析
dreams_dream2 小时前
django模型数据查询
数据库·django·sqlite
郏国上2 小时前
由于图片视频替换和删除导致阿里云上存在大量系统不再使用的文件如何处理
数据库·mongodb·阿里云
百***27113 小时前
UNION 和 UNION ALL 的区别:深入解析 SQL 中的合并操作
数据库·sql·oracle
CodeLongBear3 小时前
MySQL进阶学习笔记:从单表查询到多表关联的深度解析(万字详解)
笔记·学习·mysql
运维_攻城狮3 小时前
openeuler-24.3欧拉系统mysql开机自启报错
linux·mysql