达梦数据库如何将查询回来的字段名变成小写
达梦数据库默认是对大小写敏感,当然这个值是可以设置的
在一般的情况下,字段内容是应用自行管理的,应用自己也好控制,但是对于字段名,作为开发,可能非常头疼。这里有两个基本知识,我们一定需要知道,对于数据库来说,是希望对开发友好的,所以达梦数据库的策略和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/
达梦数据库如何将查询回来的字段名变成小写相关推荐
- 国产化DM达梦数据库 - 用户状态查询、锁定与解锁,“登录失败次数超过限制”问题解决
达梦数据库密码输入错误达到限制后会被锁定一段时间. An error occurred while establishing the connection:Long Message: 登录失败次数超过 ...
- 达梦数据库 年月周查询
//达梦数据库//年查询wrapper.eq("year(start_time)", year);//月查询wrapper.eq("month(start_time)&q ...
- 达梦数据库-8 错误代码查询
达梦数据库中有一个视图,可以查看目前达梦数据库中所有的报错信息 select * from v$err_info; 可以看到达梦报错代码是从100开始的,截止到目前一共有2799个. CODE ERR ...
- 达梦数据库SQL常用查询语句
1.简单查询 语法:select () from () 第一个括号:*, column_name, alias,expr || distinct 第二个括号:table_name 2.过滤查询 Whe ...
- 达梦数据库查询与操作
一.阐述达梦数据库的查询和操作 数据库查询是指在数据库中查询所需数据的过程.它是通过指定一组查询条件来获取数据库中的数据.这些查询条件可以是各种各样的,例如输入关键字.选择特定的字段.限制返回记录的数 ...
- 达梦数据库和mysql的语法区别
1.达梦数据库select查询字段默认是全大写英文,可以给别名加上双引号" ",比如 select real_name as "realName" from u ...
- shardingsphere 支持达梦数据库
1.项目中分表分库插件用的是 shardingsphere,现在需要从mysql 数据转移到达梦数据库. 2.但是shardingsphere并不支持达梦数据库,所以查看了源码.基于shardings ...
- oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少
windows 下需要用 cmd 登录 oracle 数据库,用 show parameter open_cursors 来查询. 可以看到 open_cursors 的值为 2000. SQL> ...
- 达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法
sm_appmenuitem 这个演示表有 5 个索引. 我在不知道的情况下想知道这个表的索引有没有建成功,或者说我现在想知道这个表的索引有哪些,就要来查询了. 索引表查询方法如下,把对应的表放到括号 ...
最新文章
- sql server中的hash应用优化
- 使用python操作redis及简单应用
- App设计灵感之十二组精美的房产App设计案例
- python语言为什么叫python_Python为什么叫Python,Java又如何而来?
- python获取字典长度_Python基础-字典
- yii mysql 查询 类型转换_Yii2.0 API改造(返回数据库对应字段数据类型)
- 反向传播的目的,及其为什么要从后向前计算梯度
- Python卸载报错:No Python 3.8 installation was detected
- 项目在linux下运行情况,Linux系统下部署项目的设置方法
- Ctrix-XenApp中误删应用服务器,如何重新添加
- 常用的17个运维监控系统(必备知识)
- Multiple Hypothesis Tracking Revisited
- 美通企业日报 | 信达生物与礼来制药达成战略合作;希尔顿旗下康莱德酒店亮相天津...
- 普通路由器改4g路由器_工业远程管理神器,4G无线路由器更方便
- 【ubuntu】禁用IP和端口
- 清华计算机系科学博士毕业论文要求,博士可以不发SCI毕业?清华取消博士论文发表强制要求...
- 【2023最新】32个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,你想要的全都有,建议码住!
- 全球经济寒冬将至?且看顶级资本大鳄的大数据分析
- 介绍arxiv.org的文献更新管理工具arxiv-sanity
- VIJOS-P1153 猫狗大战 dp 贪心