对达梦数据库CASE_SENSITIVE参数的探讨

对达梦数据库CASE_SENSITIVE参数的探讨
一、环境准备
安装dm8数据库软件(略)
二、初始化实例
2.1初始化实例
A机器(大小写不敏感):
./dminit PATH=/home/dataproda DB_NAME=PRODA instance_name=PRODA SYSDBA_PWD=Dameng123 PORT_NUM=5237 CASE_SENSITIVE=N

B机器(大小写敏感):
./dminit PATH=/home/dataprodb DB_NAME=PRODB instance_name=PRODB SYSDBA_PWD=Dameng123 PORT_NUM=5238 CASE_SENSITIVE=Y
2.2注册服务并启动实例
A机器:
./dm_service_installer.sh -t dmserver -p PRODA -dm_ini /home/dataproda/PRODA/dm.ini
[dmdba@localhost bin]$ ./DmServicePRODA status
DmServicePRODA is stopped
[dmdba@localhost bin]$ ./DmServicePRODA start
Starting DmServicePRODA: [ OK ]
[dmdba@localhost bin]$ ./DmServicePRODA status
DmServicePRODA (pid 11228) is running.

B机器:
./dm_service_installer.sh -t dmserver -p PRODB -dm_ini /home/dataprodb/PRODB/dm.ini
[dmdba@localhost bin]$ ./DmServicePRODB status
DmServicePRODB is stopped
[dmdba@localhost bin]$ ./DmServicePRODB start
Starting DmServicePRODB: [ OK ]
[dmdba@localhost bin]$ ./DmServicePRODB status
DmServicePRODB (pid 17193) is running.

2.3测试大小写不敏感的PRODA实例
[dmdba@localhost bin]$ ./disql sysdba/Dameng123:5237
服务器[LOCALHOST:5237]:处于普通打开状态
登录使用时间 : 11.320(ms)
disql V8
SQL> select name,instance_name,status$ from v i n s t a n c e ; 行号 n a m e i n s t a n c e n a m e s t a t u s instance; 行号 name instance_name status instance;行号nameinstancenamestatus


1 PRODA PRODA OPEN
已用时间: 0.850(毫秒). 执行号:62601.
SQL> select value,sys_value from v$parameter where name=‘GLOBAL_STR_CASE_SENSITIVE’;
行号 VALUE sys_value


1 0 0
已用时间: 5.012(毫秒). 执行号:62602.
SQL> SELECT CASE_SENSITIVE();
行号 CASE_SENSITIVE()


1 0
已用时间: 0.733(毫秒). 执行号:62603.
验证表数据
SQL> CREATE TABLE a(C1 INT);
操作已执行
已用时间: 8.605(毫秒). 执行号:62604.
SQL> SELECT * FROM a;
未选定行
已用时间: 0.765(毫秒). 执行号:62605.
SQL> SELECT * FROM A;
未选定行
已用时间: 0.730(毫秒). 执行号:62606.
SQL> SELECT * FROM “a”;
未选定行
已用时间: 0.586(毫秒). 执行号:62607.
SQL> SELECT * FROM “A”;
未选定行
已用时间: 0.574(毫秒). 执行号:62608.
SQL> CREATE TABLE tt(C1 VARCHAR(100));
操作已执行
已用时间: 4.487(毫秒). 执行号:62609.
SQL> INSERT INTO tt VALUES(‘a’);
影响行数 1
已用时间: 0.797(毫秒). 执行号:62610.
SQL> INSERT INTO tt VALUES(‘A’);
影响行数 1
已用时间: 0.679(毫秒). 执行号:62611.
SQL> COMMIT;
操作已执行
已用时间: 1.031(毫秒). 执行号:62612.
SQL> SELECT COUNT() FROM tt WHERE C1=‘A’;
行号 COUNT(
)


1 2
已用时间: 1.106(毫秒). 执行号:62613.

对列的影响
SQL> create table test2(id int);
操作已执行
已用时间: 3.854(毫秒). 执行号:62601.
SQL> insert into test2 values(2);
影响行数 1
已用时间: 0.579(毫秒). 执行号:62602.
SQL> select id from test2;
行号 id


1 2
已用时间: 0.573(毫秒). 执行号:62604.
SQL> select ID from test2;

行号 ID


1 2
已用时间: 0.642(毫秒). 执行号:62605.

SQL> create table test3(“id” int);
操作已执行
已用时间: 7.849(毫秒). 执行号:62606.
SQL> insert into test3 values(2);
影响行数 1

已用时间: 0.913(毫秒). 执行号:62607.
SQL> select id from test3;

行号 id


1 2

已用时间: 0.538(毫秒). 执行号:62608.
SQL> select ID from test3;

行号 ID


1 2

已用时间: 1.324(毫秒). 执行号:62609.
SQL> desc test3;

行号 name type$ nullable


1 id INTEGER Y

已用时间: 7.014(毫秒). 执行号:62610.
SQL> create table “test” (“name” varchar,NAME varchar);
create table “test” (“name” varchar,NAME varchar);
第1 行附近出现错误[-2116]:列[NAME]已存在.
已用时间: 1.207(毫秒). 执行号:0.
2.4测试大小写敏感的PRODB实例
[dmdba@localhost bin]$ ./disql sysdba/Dameng123:5238
服务器[LOCALHOST:5238]:处于普通打开状态
登录使用时间 : 13.836(ms)
disql V8
SQL> select name,instance_name,status$ from v i n s t a n c e ; 行号 N A M E I N S T A N C E N A M E S T A T U S instance; 行号 NAME INSTANCE_NAME STATUS instance;行号NAMEINSTANCENAMESTATUS


1 PRODB PRODB OPEN
已用时间: 10.530(毫秒). 执行号:62601.
SQL> select value,sys_value from v$parameter where name=‘GLOBAL_STR_CASE_SENSITIVE’;
行号 VALUE SYS_VALUE


1 1 1
已用时间: 5.436(毫秒). 执行号:62602.
SQL> SELECT CASE_SENSITIVE();
行号 CASE_SENSITIVE()


1 1

已用时间: 0.585(毫秒). 执行号:62603.
SQL> CREATE TABLE a(C1 INT);
操作已执行
已用时间: 4.169(毫秒). 执行号:62604.
SQL> SELECT * FROM a;
未选定行
已用时间: 0.916(毫秒). 执行号:62605.
验证表数据
SQL> CREATE TABLE tt(C1 VARCHAR(100));
操作已执行
已用时间: 3.361(毫秒). 执行号:62606.
SQL> INSERT INTO tt VALUES(‘a’);
影响行数 1
已用时间: 0.803(毫秒). 执行号:62607.
SQL> INSERT INTO tt VALUES(‘A’);
影响行数 1
已用时间: 0.546(毫秒). 执行号:62608.
SQL> COMMIT;
操作已执行
已用时间: 0.951(毫秒). 执行号:62609.
SQL> SELECT COUNT() FROM tt WHERE C1=‘a’;
行号 COUNT(
)


1 1
已用时间: 0.939(毫秒). 执行号:62610.
SQL> SELECT COUNT() FROM tt WHERE C1=‘A’;
行号 COUNT(
)


1 1
已用时间: 1.080(毫秒). 执行号:62611.
对列的影响
SQL> create table test2(id int);
操作已执行
已用时间: 32.602(毫秒). 执行号:62801.
SQL> desc test2;

行号 NAME TYPE$ NULLABLE


1 ID INTEGER Y

已用时间: 27.989(毫秒). 执行号:62802.
SQL> select id from test2;
未选定行

已用时间: 3.612(毫秒). 执行号:62803.
SQL> select ID from test2;
未选定行

已用时间: 3.851(毫秒). 执行号:62804.
SQL> insert into test2 values(2);
影响行数 1

已用时间: 2.836(毫秒). 执行号:62805.
SQL> select ID from test2;

行号 ID


1 2
已用时间: 1.023(毫秒). 执行号:62806.
SQL> select id from test2;
行号 ID


1 2
已用时间: 0.883(毫秒). 执行号:62807.

SQL> create table test3(“id” int);
操作已执行
已用时间: 18.156(毫秒). 执行号:62808.
SQL> insert into test3 values(2);
影响行数 1
已用时间: 0.731(毫秒). 执行号:62809.
SQL> select id from test3;
select id from test3;
第1 行附近出现错误[-2111]:无效的列名[ID].
已用时间: 1.713(毫秒). 执行号:0.
SQL> select ID from test3;
select ID from test3;
第1 行附近出现错误[-2111]:无效的列名[ID].
已用时间: 0.532(毫秒). 执行号:0.
SQL> select “ID” from test3;
select “ID” from test3;
第1 行附近出现错误[-2111]:无效的列名[ID].
已用时间: 0.821(毫秒). 执行号:0.
SQL> select “id” from test3;
行号 id


1 2
已用时间: 3.870(毫秒). 执行号:62810.

SQL> create table “test” (“name” varchar,NAME varchar);
操作已执行
已用时间: 12.306(毫秒). 执行号:62811.
2.5学习心得
1.大小写敏感
(1)不加双引号,创建表时会自动将表名和列名自动转换成大写形式,加双引号表名和列名则会保留原形式。
(2)大小写不同的两个表是不同对象。
(3)一个表中,允许存在同名但大小写形式不同的字段。
(4)如果不加双引号,SQL语句中表名和对象名会被自动转成大写。
(5)对于表中字符数据是严格区分大小写的。
2.大小写不敏感
(1)无论对不对表名或列名加双引号,表名和列名大小写形式不会发生变化,创建时是大写就是大写,是小写就是小写。
(2)不允许存在同名的数据库对象,即使大小写不同也算同名。
(3)一个表中,不允许出现相同字段名,大小写不同也算同名。
(4)字段字符内容也不区分大小写,无论是大写还是小写都认为是相同的值。

如有兴趣可以上达梦社区查看详情:https://eco.dameng.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值