首页 > 数据库 > 国内数据库 > DM数据库大小写敏感的影响
概要
CASE_SENSITIVE:该参数为DM数据库大小写是否敏感参数,在初始化数据库时指定,一旦指定,后期无法修改,默认值为1,表示大小写敏感,0表示大小写不敏感。本篇文章将通过实验来测试大小写敏感的影响范围。
本篇测试主要是从表名、表数据、表字段名、表空间名三个维度测试大小写是否敏感所带来的影响
一、针对大小写敏感的库
查询当前库是否大小写敏感,1表示大小写敏感
SELECT CASE_SENSITIVE();

测试表名:
1、创建一个表a
create table a(name varchar(10));

2、创建表A,创建时报错【对象已经存在】,注意提示消息中的对象名是A,说明大小写敏感时系统会对小写表名自动大写
create table A(name varchar(10));

3、再带双引号创建一个表a,发现可以创建,结合该参数的说明:在大小写敏感时,标识符如果没用双引号括起来,则系统会自动转换为大写,由此可见大小写敏感针对表对象名称
create table "a"(name varchar(10));

测试表数据:
1、创建一个表b,数据如下
create table b(id number,name varchar(10));
select * from b;

2、测试查询表中的数据,查询结果显示表数据是区分大小写的
select * from b where name='a';

select * from b where name='A';

测试字段名:
1、同名的字段,一个大写一个小写,创建失败,说明大小写敏感时,小写会自动转换为大写
create table bb(ID number,id number);

2、同名的字段,一个大写,一个强制小写,成功
create table cc(ID number,"id" number);

测试表空间名:
1、创建表空间abc,不带双引号,成功
create tablespace abc datafile '/dm/dm1/DMOA/abc1.dbf' size 64;

2、创建表空间ABC,报错表空间已经存在,报错的表空间名为大写,说明系统自动将小写的表空间名转换为大写
create tablespace ABC datafile '/dm/dm1/DMOA/ABC1.dbf' size 64;

3、带双引号创建表空间abc,成功,说明大小写敏感适用表空间名
create tablespace "abc" datafile '/opt/dm/dmdbms/data/DMZHANG/abc2.dbf' size 64;

二、针对大小不敏感的库
查询当前库大小写是否敏感,0表示不敏感
SELECT CASE_SENSITIVE();

测试表对象名:
1、创建表a
create table a(id number);

2、创建表A,如前面一样报错对象已经存在,但提示消息显示的对象名为a
create table A(id number);

3、再创建一个表a,带上双引号,和前面提示一样对象a已存在,说明表名大小写不敏感
create table "a"(id number);

测试表数据:
1、创建表b,数据如下
create table b(id number,name varchar(10));
select * from b;

2、测试查询表中的数据,a和A作为条件查询结果一样,说明大小写不敏感
select * from b where name='a';

select * from b where name='A';

测试表字段名:
1、创建两个同名的字段,一个大写,一个小写,失败
create table aa(id number,ID number);

2、创建两个同名的字段,一个大写,一个强制小写,失败,说明字段名也大小写不敏感
create table aa("id" number,ID number);

测试表空间名:
1、创建表空间abc,不带双引号,成功
create tablespace abc datafile '/opt/dm/dmdbms/data/DMZHANG/abc1.dbf' size 64;

2、创建表空间ABC,失败
create tablespace ABC datafile '/opt/dm/dmdbms/data/DMZHANG/ABC1.dbf' size 64;

3、创建表空间abc,带双引号,失败
create tablespace "abc" datafile '/dm/dm1/DMOA/abc1.dbf' size 64;

测试结论:
1、 大小写敏感,同时针对表对象名称、表中数据、表字段名、表空间名
2、 大写不敏感,则表对象名称、表数据、表字段名、表空间名都不敏感
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70000201/viewspace-2773267/ ,如需转载,请注明出处,否则将追究法律责任。