达梦数据库如何将查询回来的字段名变成小写

您所在的位置:网站首页 99700大写 达梦数据库如何将查询回来的字段名变成小写

达梦数据库如何将查询回来的字段名变成小写

#达梦数据库如何将查询回来的字段名变成小写| 来源: 网络整理| 查看: 265

达梦数据库默认是对大小写敏感,当然这个值是可以设置的

在一般的情况下,字段内容是应用自行管理的,应用自己也好控制,但是对于字段名,作为开发,可能非常头疼。这里有两个基本知识,我们一定需要知道,对于数据库来说,是希望对开发友好的,所以达梦数据库的策略和Oracle 的策略一样:

1.        在建立对象的时候,随便写大写还是小写,数据库都处理成大写

2.        在查询的时候,对象名,不论写成大写还是小写,数据库都看成大写,在数据库中进行查询

所以,当你查询的时候,返回的字段也必然是大写,那如何将字段变成小写呢?

这个方式就是:为对象名(字段名、表名、存储过程等等)加上双引号。

举三个例子:

Create table test1(v1 int); 和 select v1 from test1;

在数据库中处理的是:

CREATE TABLE TEST1(V1 INT); 和 SELECT V1 FROM TEST1;

-- 查询语句是正确的,不会报错

 

create table test1(v1 int); 和 select "v1" from test1;

在数据库中处理的是:

CREATE TABLE TEST1(V1 INT); 和 SELECT v1 FROM TEST1;

-- 查询语句会报错:无效的列名v1 ,因为这里的列名是 V1 。

create table test1("v1" int); 和 select v1 from test1;

在数据库中处理的是:

CREATE TABLE TEST1(v1 INT); 和 SELECT V1 FROM TEST1;

-- 查询语句会报错:无效的列名V1 ,因为这里的列名是 v1 。

当然,下面的这些,查询语句也都是正确的,不会报错:

Create table test1( V1 int); 和 select v1 from test1;

在数据库中处理的是:

CREATE TABLE TEST1(V1 INT); 和 SELECT V1 FROM TEST1;

-- 查询语句是正确的,不会报错

Create table test1(v1 int); 和 select V1 from test1;

在数据库中处理的是:

CREATE TABLE TEST1(V1 INT); 和 SELECT V1 FROM TEST1;

-- 查询语句是正确的,不会报错

总的来说,对于字段或者对象名的问题,①要么全部(建立或者查询时), 都不加双引号(建议这种方式,这个也不要建立和查询时,名字大小写完全对应),②要么,全部都加双引号,且必须保证建立和查询时,双引号里面的内容,完全一致。

当然,有时候我们就是都加了双引号,或者部分加了,部分没加,大小写对不上怎么办?

——不要忘了,我们还有“大小写是否敏感”这个设置。设置成不敏感,这个“对不上”,就是对的上了。只是要注意,这个还会影响字段内容的判断。

那么问题来了,什么叫做影响字段内容的判断?

例如下面:

Create table test1(v1 varchar(200));

insert into test1 values('a');

insert into test1 values('A');

insert into test1 values('b');

select * from test1 where v1='A';

-- 在敏感的库里,只能查出一条数据

-- 在不敏感的库里,能查出两条数据

select * from test1 where v1='a';

-- 在敏感的库里,只能查出一条数据

-- 在不敏感的库里,能查出两条数据

select * from test1 where 'A'='a';

-- 在敏感的库里,不能查出来任何数据

-- 在不敏感的库里,能查出整个表中全部的数据

 

参考:

https://www.pianshen.com/article/31701077594/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3