达梦数据库关于参数CASE_SENSITIVE的学习
环境准备
CASE_SENSITIVE标识符大小写敏感。当大小写敏感时,小写的标识符应当用 "" 括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,在标识符比较时也不能区分大小写。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。默认值为 Y 。可选参数。
DM 为了兼容不同的数据库,在初始化数据库的时候有一个参数字符串比较大小写敏感,用于确定数据库对象及数据是否区分大小写,默认为区分,不可更改。建议从 MYSQL 和 SQLSERVER 迁移过来的系统,使用大小写不敏感,ORACLE 迁移过来的系统,使用大小写敏感,以便和原来系统匹配。
IP | 实例名 | 端口 | 大小写敏感 |
192.168.23.10 | test | 5237 | Y |
Test02 | 5238 | N |
参数case_sensitive
检查数据库实例大小写敏感信息
SELECT SF_GET_CASE_SENSITIVE_FLAG(); --1 为大小写敏感,0 为大小写不敏感 |
创建表对比
对列名不添加“”
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
对列名添加“”
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
对表名添加“”
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
列名相同,一个添加“”,一个不添加“”
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
DML操作对比
插入
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
删除
CASE_SENSITIVE=Y的情况
CASE_SENSITIVE=N的情况
总结
大小写敏感的数据库中,DML 或 DDL 操作时:
- 如果不对表名或列名添加"",那么表名和列名都自动转换为大写形式;
- 对表进行 DML 操作时,如果没有小写形式的字段,不能采取小写加""的形式指定过滤字段,会被认定为无效的字段;
- 如果对表名或列名添加"“,会固定书写时的大、小写形式,”“中是大写形式,则过滤字段就是大写字段,”"中是小写字段,则过滤字段就是小写字段;
- 对其进行 DML 操作时,需要利用""指定表名和字段名,否则默认会认定以大写形式去查询对象。
- 查询时,''和""界定符中字符串区分大小写,界定符中的字符串若是大写形式,那仅查询这个大写形式的对象,若是或小写形式,那仅查询这个小写形式的对象,DML 操作依旧。
大小写不敏感的数据库中,创建表时:
- 无论对不对表名或列名添加"",表名和列名的大小写形式不会发生变化,大写形式就是大写形式,小写形式就是小写形式;
- 不允许存在同名的数据库对象,即使大小写不同,默认也只能存在一个;
- 一个表中,也不允许相同的字段名,即使大小写不同;
- 查询时,''和""界定符不区分大小写,界定符中的查询或过滤条件即使是大写或小写,都可以查询到预期的结果集。
如果想了解更多达梦数据库的信息,推荐达梦官方的在线服务平台 https://eco.dameng.com/
最后修改时间:2024-06-21 09:36:02
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




