—oracle
对象名(表名、列名等)默认不区分大小写
Oracle 默认把未加双引号的对象名全部转为大写处理。
字符串比较是大小写敏感的
SELECT * FROM users WHERE name = ‘admin’; – 只匹配 ‘admin’
—mysql
表名是否大小写敏感?由操作系统 + 参数 lower_case_table_names 共同决定。
操作系统 lower_case_table_names 值 表名是否大小写敏感? 说明
Linux 0(默认) ✅ 敏感 表名区分大小写
Windows 1(默认) ❌ 不敏感 表名不区分大小写
通用 2 ❌ 不敏感 表名在磁盘存储为小写,但 SQL 可大小写混写访问
1、列名是否大小写敏感?
无论在哪种系统中,列名默认都是不区分大小写的
2、别名是否大小写敏感?
列别名/表别名:在 SQL 使用中不敏感,但在 ORDER BY / GROUP BY 等上下文中通常保持一致比较好。
3、字符串比较是否大小写敏感?
取决于 字符集和排序规则(collation)。
utf8_general_ci:ci 表示 case-insensitive(不敏感)
utf8_bin:表示 二进制比较,大小写敏感
lower_case_table_names = 0; (默认为0)
数据库名与表名是严格区分大小写的;
表的别名是严格区分大小写的;
列名与列的别名在所有的情况下均是忽略大小写的;
变量名也是严格区分大小写的;
—达梦
CASE_SENSITIVE有 0 和 1 两个值,分别代表不同含义。
CASE_SENSITIVE = 1 代表数据库对大小写敏感,会将A和a当成两个不同的字符对待,初始化数据库时,如不指定CASE_SENSITIVE值,默认为 1,数据库大小写敏感。
CASE_SENSITIVE = 0 大表数据库对大小写不敏感,会将A和a看作是相同的字符。
另外,在使用disql查询工具进行查询时,默认会将小写转为大写。
对象名(表名、列名)是否大小写敏感?
🔸 默认情况(不加双引号)→ 不敏感
• 达梦默认会将未加双引号的对象名统一转换为大写存储。
• 所以访问时大小写不敏感。
• 通过 dbms_metadata.get_ddl查询表结构时,大小写敏感库对表名大小写有要求
总结:
数据库名与表名是严格区分大小写的;
表的别名是严格区分大小写的;
列名与列的别名在所有的情况下均是忽略大小写的;
变量名也是严格区分大小写的;
字符串默认不敏感,即select查询大小写都会出现在结果集中
对象名(表名、列名等)默认不区分大小写
字符串比较是大小写敏感的
PL/SQL 中变量名、标识符不区分大小写
对象名(表名、列名等)默认不区分大小写
字符串比较时是默认区分大小写的,大小写敏感的
PL/SQL 中变量名、标识符不区分大小写
从 Oracle 系统迁移 (大小写敏感)
从 MySQL / SQL Server 系统迁移 N(大小写不敏感)
文章
阅读量
获赞