当前位置:   article > 正文

达梦数据库 CASE_SENSITIVE参数的理解

达梦数据库 case

1.CASE_SENSITIVE是什么

CASE_SENSITIVE的意思是标识符大小写敏感,是达梦数据库初始化时的一个全局参数。当大小写敏感时,小写的标识符应用""括起,否则被系统自动转换为大写;当大小写不敏感时,系统不会转换标识符的大小写,系统比较函数会将大写字母全部转为小写字母再进行比较。取值:Y、y、1 表示敏感;N、n、0 表示不敏感。缺省值为 Y。可选参数。
此参数在数据库创建成功后无法修改,可通过系统函数 SF_GET_CASE_SENSITIVE_FLAG()或 CASE_SENSITIVE()查询设置的参数置。
在这里插入图片描述
查询大小写敏感的配置情况
在这里插入图片描述

2.大小写敏感对表名的影响

2.1 CASE_SENSITIVE设置为N时

SQL> create table aa(id int);
操作已执行
已用时间: 2.953(毫秒). 执行号:64601.
SQL> select * from aa;
未选定行

已用时间: 0.639(毫秒). 执行号:64602.
SQL> select * from AA;
未选定行

已用时间: 0.441(毫秒). 执行号:64603.
SQL> select * from "aa";
未选定行

已用时间: 0.430(毫秒). 执行号:64604.
SQL> select * from "AA";
未选定行

已用时间: 0.360(毫秒). 执行号:64605.
SQL> create table "bb"(id int);
操作已执行
已用时间: 5.069(毫秒). 执行号:64606.
SQL> select * from bb;
未选定行

已用时间: 0.636(毫秒). 执行号:64607.
SQL> select * from BB;
未选定行

已用时间: 0.410(毫秒). 执行号:64608.
SQL> select * from "bb";
未选定行

已用时间: 0.402(毫秒). 执行号:64609.
SQL> select * from "BB";
未选定行

已用时间: 0.416(毫秒). 执行号:64610.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38

在大小写不敏感的情况下,加不加双引号都无所谓,对查询没有影响

2.2 CASE_SENSITIVE设置为Y时

SQL> create table aa(id int);
操作已执行
已用时间: 2.903(毫秒). 执行号:64401.
SQL> select * from aa;
未选定行

已用时间: 0.562(毫秒). 执行号:64402.
SQL> select * from AA;
未选定行

已用时间: 0.307(毫秒). 执行号:64403.
SQL> select * from "aa";
select * from "aa";
第1 行附近出现错误[-2106]:无效的表或视图名[aa].
已用时间: 0.363(毫秒). 执行号:0.
SQL> select * from "AA";
未选定行

已用时间: 0.449(毫秒). 执行号:64404.
SQL> create table "bb"(id int);
操作已执行
已用时间: 4.949(毫秒). 执行号:64405.
SQL> select * from bb;
select * from bb;
第1 行附近出现错误[-2106]:无效的表或视图名[BB].
已用时间: 0.206(毫秒). 执行号:0.
SQL> select * from BB;
select * from BB;
第1 行附近出现错误[-2106]:无效的表或视图名[BB].
已用时间: 0.180(毫秒). 执行号:0.
SQL> select * from "bb";
未选定行

已用时间: 0.460(毫秒). 执行号:64406.
SQL> select * from "BB";
select * from "BB";
第1 行附近出现错误[-2106]:无效的表或视图名[BB].
已用时间: 0.154(毫秒). 执行号:0.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

3.大小写敏感对字段名的影响

3.1 CASE_SENSITIVE设置为N时

SQL> create table cc(id int,"name" varchar);
操作已执行
已用时间: 7.166(毫秒). 执行号:64611.
SQL> select id from cc;
未选定行

已用时间: 0.872(毫秒). 执行号:64612.
SQL> select ID from cc;
未选定行

已用时间: 0.473(毫秒). 执行号:64613.
SQL> select "id" from cc;
未选定行

已用时间: 0.426(毫秒). 执行号:64614.
SQL> select "ID" from cc;
未选定行

已用时间: 0.459(毫秒). 执行号:64615.
SQL> select name from cc;
未选定行

已用时间: 0.635(毫秒). 执行号:64616.
SQL> select NAME from cc;
未选定行

已用时间: 0.522(毫秒). 执行号:64617.
SQL> select "name" from cc;
未选定行

已用时间: 0.455(毫秒). 执行号:64618.
SQL> select "NAME" from cc;
未选定行

已用时间: 0.429(毫秒). 执行号:64619.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

3.2 CASE_SENSITIVE设置为Y时

SQL> create table cc(id int,"name" varchar);
操作已执行
已用时间: 2.661(毫秒). 执行号:64407.
SQL> select id from cc;
未选定行

已用时间: 0.793(毫秒). 执行号:64408.
SQL> select ID from cc;
未选定行

已用时间: 0.305(毫秒). 执行号:64409.
SQL> select "id" from cc;
select "id" from cc;
第1 行附近出现错误[-2111]:无效的列名[id].
已用时间: 0.688(毫秒). 执行号:0.
SQL> select "ID" from cc;
未选定行

已用时间: 0.339(毫秒). 执行号:64410.
SQL> select name from cc;
select name from cc;
第1 行附近出现错误[-2111]:无效的列名[NAME].
已用时间: 0.249(毫秒). 执行号:0.
SQL> select NAME from cc;
select NAME from cc;
第1 行附近出现错误[-2111]:无效的列名[NAME].
已用时间: 0.259(毫秒). 执行号:0.
SQL> select "name" from cc;
未选定行

已用时间: 0.483(毫秒). 执行号:64411.
SQL> select "NAME" from cc;
select "NAME" from cc;
第1 行附近出现错误[-2111]:无效的列名[NAME].
已用时间: 0.234(毫秒). 执行号:0.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35

大小写敏感的时候,字段名也需要符合大小写敏感规则。即在大小写敏感的情况下,如果字段名需要小写,字段名一定要带上双引号,查询的时候也需要带上双引号,否则报错。

4.大小写敏感对表中内容的影响

4.1 CASE_SENSITIVE设置为N时

SQL> create table dd(name varchar);
操作已执行
已用时间: 1.806(毫秒). 执行号:64622.
SQL> insert into dd values('a');
影响行数 1

已用时间: 0.536(毫秒). 执行号:64623.
SQL> insert into dd values('A');
影响行数 1

已用时间: 0.374(毫秒). 执行号:64624.
SQL> select * from dd;

行号     name
---------- ----
1          a
2          A

已用时间: 0.457(毫秒). 执行号:64625.
SQL> select * from dd where name='a';

行号     name
---------- ----
1          a
2          A

已用时间: 0.615(毫秒). 执行号:64626.
SQL> select * from dd where name='A';

行号     name
---------- ----
1          a
2          A

已用时间: 0.512(毫秒). 执行号:64627.

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

大小写不敏感的时候,只要字段内容是一样的,不管是否大小写,都会把符合的内容全部返回。

4.2 CASE_SENSITIVE设置为Y时

SQL> create table dd(name varchar);
操作已执行
已用时间: 3.545(毫秒). 执行号:64412.
SQL> insert into dd values('a');
影响行数 1

已用时间: 0.635(毫秒). 执行号:64413.
SQL> insert into dd values('A');
影响行数 1

已用时间: 0.361(毫秒). 执行号:64414.
SQL> select * from dd;

行号     NAME
---------- ----
1          a
2          A

已用时间: 0.413(毫秒). 执行号:64415.
SQL> select * from dd where name='a';

行号     NAME
---------- ----
1          a

已用时间: 0.620(毫秒). 执行号:64416.
SQL> select * from dd where name='A';

行号     NAME
---------- ----
1          A

已用时间: 0.548(毫秒). 执行号:64417.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

大小写敏感的时候,表中的内容也需要符合大小写敏感规则,只按照查询时的大小写来返回大小写的内容。

5.结论

1、大小写敏感针对表名、字段名、表内容。
2、在大小写敏感的情况下,如果表名、字段名、字段内容也需要加上双引号,否则会报错表名、视图表、字段名无效

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/882071
推荐阅读
相关标签
  

闽ICP备14008679号