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

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

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

  1. 国产化DM达梦数据库 - 用户状态查询、锁定与解锁,“登录失败次数超过限制”问题解决

    达梦数据库密码输入错误达到限制后会被锁定一段时间. An error occurred while establishing the connection:Long Message: 登录失败次数超过 ...

  2. 达梦数据库 年月周查询

    //达梦数据库//年查询wrapper.eq("year(start_time)", year);//月查询wrapper.eq("month(start_time)&q ...

  3. 达梦数据库-8 错误代码查询

    达梦数据库中有一个视图,可以查看目前达梦数据库中所有的报错信息 select * from v$err_info; 可以看到达梦报错代码是从100开始的,截止到目前一共有2799个. CODE ERR ...

  4. 达梦数据库SQL常用查询语句

    1.简单查询 语法:select () from () 第一个括号:*, column_name, alias,expr || distinct 第二个括号:table_name 2.过滤查询 Whe ...

  5. 达梦数据库查询与操作

    一.阐述达梦数据库的查询和操作 数据库查询是指在数据库中查询所需数据的过程.它是通过指定一组查询条件来获取数据库中的数据.这些查询条件可以是各种各样的,例如输入关键字.选择特定的字段.限制返回记录的数 ...

  6. 达梦数据库和mysql的语法区别

    1.达梦数据库select查询字段默认是全大写英文,可以给别名加上双引号" ",比如 select real_name as "realName" from u ...

  7. shardingsphere 支持达梦数据库

    1.项目中分表分库插件用的是 shardingsphere,现在需要从mysql 数据转移到达梦数据库. 2.但是shardingsphere并不支持达梦数据库,所以查看了源码.基于shardings ...

  8. oracle数据库查询open_cursors值的sql语句,达梦数据库查询MAX_SESSION_STATEMENT值方法,MAX_SESSION_STATEMENT的最大值、上限是多少

    windows 下需要用 cmd 登录 oracle 数据库,用 show parameter open_cursors 来查询. 可以看到 open_cursors 的值为 2000. SQL> ...

  9. 达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法

    sm_appmenuitem 这个演示表有 5 个索引. 我在不知道的情况下想知道这个表的索引有没有建成功,或者说我现在想知道这个表的索引有哪些,就要来查询了. 索引表查询方法如下,把对应的表放到括号 ...

最新文章

  1. sql server中的hash应用优化
  2. 使用python操作redis及简单应用
  3. App设计灵感之十二组精美的房产App设计案例
  4. python语言为什么叫python_Python为什么叫Python,Java又如何而来?
  5. python获取字典长度_Python基础-字典
  6. yii mysql 查询 类型转换_Yii2.0 API改造(返回数据库对应字段数据类型)
  7. 反向传播的目的,及其为什么要从后向前计算梯度
  8. Python卸载报错:No Python 3.8 installation was detected
  9. 项目在linux下运行情况,Linux系统下部署项目的设置方法
  10. Ctrix-XenApp中误删应用服务器,如何重新添加
  11. 常用的17个运维监控系统(必备知识)
  12. Multiple Hypothesis Tracking Revisited
  13. 美通企业日报 | 信达生物与礼来制药达成战略合作;希尔顿旗下康莱德酒店亮相天津...
  14. 普通路由器改4g路由器_工业远程管理神器,4G无线路由器更方便
  15. 【ubuntu】禁用IP和端口
  16. 清华计算机系科学博士毕业论文要求,博士可以不发SCI毕业?清华取消博士论文发表强制要求...
  17. 【2023最新】32个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,你想要的全都有,建议码住!
  18. 全球经济寒冬将至?且看顶级资本大鳄的大数据分析
  19. 介绍arxiv.org的文献更新管理工具arxiv-sanity
  20. VIJOS-P1153 猫狗大战 dp 贪心

热门文章

  1. qml 学习要点记录(2)
  2. java教师工作量代码_java教师工作量计算法
  3. 计算机支持最大内存大小,怎么查看电脑支持的最大内存?
  4. 自动驾驶入门必须要学会的ADAS(详解)
  5. 人的由来_人的起源_什么是人?
  6. 31省工业互联网路线图公布!
  7. 那年,我们二十七八岁
  8. JavaScript期末大作业 极简个人相册留言博客模板(HTML+CSS+JavaScript)
  9. PSP截图工具:prxshot 0.4.0安装教程6.60可用
  10. 分享国内外21大知名网盘