ITPub博客

首页 > 数据库 > 国内数据库 > DM数据库大小写敏感的影响

DM数据库大小写敏感的影响

原创 国内数据库 作者:damaibaobao 时间:2021-05-21 11:45:59 0 删除 编辑

概要

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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2021-05-19

  • 博文量
    3
  • 访问量
    4773