达梦数据库如何将查询回来的字段名变成小写 |
您所在的位置:网站首页 › 99700大写 › 达梦数据库如何将查询回来的字段名变成小写 |
达梦数据库默认是对大小写敏感,当然这个值是可以设置的 在一般的情况下,字段内容是应用自行管理的,应用自己也好控制,但是对于字段名,作为开发,可能非常头疼。这里有两个基本知识,我们一定需要知道,对于数据库来说,是希望对开发友好的,所以达梦数据库的策略和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 |