达梦数据库大小写敏感验证

在达梦数据库初始化中CASE_SENSITIVE 默认值为Y/1,即大小写敏感。可用选值:Y/N or 1/0
对象标识符(表名、字段名、视图名等)和数据内容在英文字符方面是否区分大小写。

大小写敏感会牵扯到含英文字符数据内容的大小写辨别和对象标识符大小写辨别。
当开启大小写敏感时,书写的SQL语句中涉及到对象标识符的名称,会先自动将英文字符全部转成大写,再发送到数据库服务器解析。
当关闭大小写敏感时,数据库解析引擎原封不动的发送而来的SQL语句中涉及的对象标示符(即:禁用自动转大大写),不管是大写还是小写都认为是一个对象。
如果想让写入的对象名称原样发送到数据库服务器,可以使用英文半角双引号。

1.大小写敏感环境:


验证大小写敏感环境下不加双引号的小写转化成大写。加双引号原样保留。

创建表:
create table t1(v1 varchar(200)); 表名虽然是小写,但是未添加双引号,会转换成大写T1。

create table T1(v1 varchar(200));  此时会报错

create table “t2”(v1 varchar(200)); 加双引号会原样保留。

 

create table T2(v1 varchar(200));

 

Manager可以看到三张表,且t1是被转换为T1了

 

插入数据
insert into t1 values('c'); 实际等于 insert into T1 values('c');

insert into “t1” values('c');  
表名用英文半角双引号包裹后不会转换为大写T1,此时插入就报错。

 

此时T1表数据如下,可以看到字段名v1也被转换为V1:

 

select * from T1 where V1='c'; 
因为大小写敏感,此时只能查出一条数据。

 

2.大小写不敏感环境: 

验证表名不会自动转换为大写,大小写为同一个对象。

create table t1(v1 varchar(200)); 表名不会转换成大写T1。

create table T1(v1 varchar(200));  
此时创建会报对象已存在

 

Manager显示如下

insert into T1 values('c');  
insert into t1 values('B');  
这里不管表名大写小写都能插入成功。

 

此时数据如下:

 

select * from t1 where v1=’c’;
select * from t1 where v1=’C’;
不论大写还是小写c都能查出三条记录

 

 

 社区地址:https://eco.dameng.com

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值