当前位置: 首页 > news >正文

达梦数据库CASE_SENSITIVE大小写敏感差异比较

达梦数据库CASE_SENSITIVE大小写敏感差异比较

  • 1 是否敏感环境确认
  • 2 数据存储比较
  • 3 查询结果集比较
  • 4 数据排序比较
  • 5 表名的差异
  • 6 列名的差异
  • 7 索引名的差异
  • 8 表空间名差异

CASE_SENSITIVE参数不同,对表数据底层存储无影响(内部存储字节均相同),对表结构、表空间名、查询结果集和默认排序有影响。1)表结构(表名、列名、索引名)和表空间层面:大小写敏感转化为大写存储;大小写不敏感按照书写大小写存储。2)查询结果集层面:大小写敏感严格按照字符大小写比较;大小写不敏感会同时匹配大小写字母(先转换小写在比较)。3)默认排序层面:大小写敏感按照底层字符编码顺序进行排序;大小写不敏感按照字符顺序进行排序(大小写先后位置不确定)。
下方截图说明:左边窗口大小写敏感,右边窗口不敏感。

1 是否敏感环境确认

SQL> select CASE_SENSITIVE();
SQL> select SF_GET_CASE_SENSITIVE_FLAG();

返回值:1代表敏感;0代表不敏感。会话级别查询函数SESS_CASE_SENSITIVE()在该版本中已不可用。

2 数据存储比较

通过数据库内部dump函数可以获取内部存储字节。在两个环境内底层数据存储相同。表数据16进制ASCII具体如下:

SQL> select dump(C,1016) dump_char,C from TEST;

在这里插入图片描述

3 查询结果集比较

通过where c='A’对表结果数据过滤,两者返回的结果集不同。敏感数据返回1条数据A;非敏感数据库返回2条结果集A和a。
在这里插入图片描述

4 数据排序比较

是否敏感对数据默认排序(也可以通过NLSSORT指定排序规则)有影响。默认排序差别如下:
敏感:按照底层字符编码顺序进行排序。
不敏感:按照字符顺序进行排序。大小写先后位置不确定。
在这里插入图片描述
在这里插入图片描述

5 表名的差异

敏感:不论建表时表名是大写还是小写,表名均是以大写存储。
不敏感:表名不做处理,按照创建时的大小写存储。
测试内容:
大小写敏感的不敏感的数据库,分别执行以下语句。

SQL> CREATE TABLE TEST(C VARCHAR);
SQL> CREATE TABLE test2(C VARCHAR);
SQL> CREATE TABLE Test3(C VARCHAR);

观察dba_objects对象差异。

SQL> select owner,object_name from dba_objects where object_name like 'TEST%';

在这里插入图片描述

6 列名的差异

敏感:不论建表时列名是大写还是小写,列名均是以大写存储。
不敏感:列名不做处理,按照创建时的大小写存储。
测试内容:
大小写敏感的不敏感的数据库,分别执行以下语句。

SQL> CREATE TABLE TEST(C VARCHAR);
SQL> CREATE TABLE TEST4(c VARCHAR);

观察dba_col_comments对象差异。

SQL> select * from SYS.DBA_COL_COMMENTS where TABLE_NAME in ('TEST','TEST4');

在这里插入图片描述

7 索引名的差异

敏感:不论创建索引时索引名是大写还是小写,索引名均是以大写存储。
不敏感:索引名不做处理,按照创建时的大小写存储。
测试内容:
大小写敏感的不敏感的数据库,分别执行以下语句。

SQL> CREATE INDEX Idx_Test_C ON TEST(C);

观察dba_indexes对象差异。

SQL> select INDEX_NAME from SYS.DBA_INDEXES where TABLE_NAME='TEST';

在这里插入图片描述

8 表空间名差异

敏感:不论创建表空间时表空间名是大写还是小写,表空间名均是以大写存储。
不敏感:表空间名不做处理,按照创建时的大小写存储。
测试内容:
大小写敏感的不敏感的数据库,分别执行以下语句。

SQL> create tablespace Ts_Test_Data datafile 'Ts_Test_Data01.dbf' size 128;

观察V$TABLESPACE对象差异。

SQL> select NAME from SYS."V$TABLESPACE" order by id desc;

在这里插入图片描述

http://www.lryc.cn/news/590722.html

相关文章:

  • 字段级权限控制场景中,RBAC与ABAC的性能差异
  • 【机器学习【6】】数据理解:数据导入、数据审查与数据可视化方法论
  • [NOIP][C++] 树的重心
  • 嵌入式单片机开发实战指南: 从RISC-V到TinyML全栈技术
  • 筑牢网络安全防线:DDoS/CC 攻击全链路防护技术解析
  • 权限隔离设计中实现字段级别的动态隐藏
  • 工作第一步建立连接——ssh
  • 【JavaScript】从事件流到事件委托
  • 再探多线程Ⅰ--- (创建思路+核心方法+代码样例)
  • [Mysql] Connector / C++ 使用
  • 二分查找算法(一)
  • 多目标优化|HKELM混合核极限学习机+NSGAII算法工艺参数优化、工程设计优化,四目标(最大化输出y1、最小化输出y2,y3,y4),Matlab完整源码
  • WP Force SSL Pro – HTTPS SSL Redirect Boost Your Website‘s Trust in Minutes!
  • 代码随想录算法训练营完结篇
  • 主流 TOP5 AI智能客服系统对比与推荐
  • Raydium CLMM 协议
  • Gradle vs Maven:构建工具世纪对决 —— 像乐高积木与标准模型之间的选择艺术
  • Transform的重要方法
  • excel分组展示业绩及增长率
  • 归一化与激活函数:深度学习的双引擎
  • 【WRFDA数据教程第一期】LITTLE_R 格式详细介绍
  • opencv 值类型 引用类型
  • 身份证号码姓名认证解决方案-身份证三要素API接口
  • Python+Selenium自动化
  • 【python】sys.executable、sys.argv、Path(__file__) 在PyInstaller打包前后的区别
  • Linux内核IPv4路由查找:LPC-Trie算法的深度实践
  • 门级网标仿真的时钟异常检查
  • 【C++高阶四】红黑树
  • ELK日志分析,涉及logstash、elasticsearch、kibana等多方面应用,必看!
  • 线程规则的制定者二:线程安全与冲入问题