达梦数据库,大小写敏感这个参数怎么设置

2023-11-14

达梦数据库,大小写敏感这个参数怎么设置

1.1 现象描述

达梦在安装完软件后,需要初始化数据库实例(其他大部分数据库,也是同样的操作)。

但是,达梦在初始化数据库实例前,有几个需要特别注意的参数,这几个参数一定要特别关注,因为如果设置错了,是不能更改的(这些参数,在实例生命周期内,无法更改——如果要更改,除非重新初始化)

这其中一个参数,就是【大小写敏感】

1.2 处理方法

1.2.1 什么是大小写敏感?

大小写敏感,也就是字面意思,表示数据库对于字符串的比较,是否区分大小写(即为是否敏感)。

这个“是否区分”,是三个方面的:

  1.     对象名(表名、存储过程、序列等其他对象)或者字段名(也就是列名)
    
  2.     字段内容
    
  3.     其他字符串内容(比如用户输入的字符串类型的条件值,如where  col ='xxxxxx' ,字符串类型的条件值,说的就是这个'xxxxxx' )
    

也就是说,如果设置为敏感,上面三项内容,都不区分大小写,也就是Abc 就是ABC ,跟进一步来说,也就是在进行字符串比较时(不管这个字符串是对象名、字段名还是字段内容),如果他们之间,不考虑大小写,是完全一样的,数据库则判定他们相等(他们是一样的)。

1.2.2 如何设置这个参数?

如何设置,分为两种情况,第一种情况是,通过图形化界面安装,即通过图形化界面工具初始化数据库实例的时候(dbca 工具初始化实例);第二种情况是,通过交互式无图形化界面安装,即通过命令行工具初始化数据库实例的时候(dminit 工具初始化实例)。

  1.     图形化dbca 工具初始化实例,在下面这个步骤:
    

在这里插入图片描述

上图说明了:

  1. 在初始化过程中,哪个界面可以设置“字符串比较大小写敏感”

  2. 且通过图示可以看出(默认情况下),“字符串比较大小写敏感”的 默认值为“勾选”(即为1 ),标识对于大小写是敏感的,即区分大小写(对于大小写不一样的同内容字符串,判定为 不一样)。

  3.     命令行dminit 工具初始化实例,通过下面这个参数指定:
    

在这里插入图片描述

上图说明了:

     1. 这个参数通过 case_sensitive 进行设置

     2. 改参数默认值为Y (即为1 ),也就是敏感(区分大小写)

     3. 如果要设置为不敏感,通过红色标识字示例的那样,在dminit 时,添加参数设置【case_sensitive=n 】或者【case_sensitive=0 】即可(参数名字大写或者小写都可以)。

1.2.3 我们从不同的数据库迁移到达梦时,如何选择这个参数的设置值?

两条基本原则:

  1. 我们通过前面,已经知道这个参数是干嘛的了,那么第一条原则就是按需选择:【按需设置】

  2. 第二条原则是,我们不懂这个参数什么含义,或者说我们知道这个参数什么含义,但是还是不知道针对源库如何设置,那么就用这个建议:【原先使用Oracle 的,迁移到达梦时,选择敏感(即为默认值);原先使用Sqlerver 、Mysql 的,迁移到达梦时,选择不敏感( 注意:不是默认值哦)】,当然,如果是其他数据库的类型的话,还是得自己根据实际含义和业务需求判断,到底把这个参数设置成0 还是1 。

1.2.4 一般情况下,我们如何考虑大小写敏感的问题?大小写敏感的一个常见问题?

1.2.4.1 概述

大小写敏感的问题,我们知道一共涉及到两类:第一类是字段内容的比较区分(变量或者等号右边的值,也归入这类吧),第二类是对象名的比较区分。

我们在使用数据库的过程中,最常碰到的是第二类。

1.2.4.2 两个注意事项

在一般的情况下,字段内容是应用自行管理的,应用自己也好控制,但是对于字段名,最为开发,可能非常头疼。这里有两个基本知识,我们一定需要知道:

对于数据库来说,是希望对开发友好的,所以达梦数据库的策略和Oracle 的策略一样:

即:

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

通过上述两个处理方式,作为开发,我们就可以“随便写大写还是小写”了。

备注:有时候,规范的应用代码里,写的全是驼峰命令法,我们往往也会用这个“自动转换”的方式,就是虽然怎么写对象名,都不会错——避免驼峰的时候,驼错一个字母,都找不到对象了(报错无效的列名、无效的表名或者无效的对象名等,各种无效的XX ——数据库中找不到))。

在“一”的场景下,往往不能满足特殊用户,或者一些“我就是要用小写,你不能给我设置成大写的场景”。于是,数据库必须提供过一种方式,可以用来规避上述这种转换(我们把“一”中的那种处理,描述成一种自动转换)。

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

备注:所以有一点是明确的,如果我们 要想用“一”中的 自动转换,不考虑大小写,就 一定不要给字段或者对象名 加上双引号。

1.2.4.3 举三个例子:

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;

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

1.2.4.4 总结:

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

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

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

1.2.4.5 备注:什么叫做影响字段内容的判断?

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’;

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

达梦数据库,大小写敏感这个参数怎么设置 的相关文章

  • 京东零售大佬为你讲解:黑盒测试的底层逻辑

    什么是黑盒测试 它是把程序看作一个黑盒子 在不考虑程序内部结构的情况下 检查程序功能是否按照PRD的规定正常使用 程序是否能适当地接收输入数据 产生正确的输出 这其实就是黑盒测试的定义 也是黑盒测试的底层逻辑 一般人不会重视定义 但往往就是
  • html5 canvas(小树姐的牛掰到爆了的作品)

    自从小树嫁了个牛逼的前端之后 canvas的境界超过我了 小树demo 小编表示 这个境界 这个几何 让我有种跪舔的感觉 http www wow trend com brand index shtml 这个hover让我彻底凌乱了 div
  • react中Hooks

    React Hook Hooks是什么 常见的Hook 1 state Hook 2 Effect Hook 3 Ref Hook 4 Context Hook React Hook Hooks是什么 1 Hook是react 16 8版本
  • Qt的ui文件不能简单复制

    在使用vs Qt开发时 直接复制另外一个widget类的ui文件 简单改名成当前类对应的ui文件 会导致编译出错 尽可能使用添加的Qt class自带的ui文件 因为ui文件的配置文件中有许多与当前类相关的字符串 简单复制容易报错
  • 二叉树的结点数

    二叉树的结点数 10分 已知二叉树的结点结构定义如下 typedef struct NODE char data struct NODE lch rch NODE 说明 data 为数据域 均为英文大写字母 lch 和 rch 分别为指示左
  • 抖音视频怎么去水印

    水印 一般是指放置在图片 视频或者文档上的文字或者图标 用来做标记或者品牌宣传 我们从网上获取的文件资源很多都是带有水印的 比如从抖音短视频下载的视频就会带有水印 为了达到更好的观看效果 我们就需要将这些视频自带的水印给去除掉 下面就来教教
  • Unity Shader渲染顺序 坐标系 和光照模型

    1 Shader中的渲染顺序 是按照Queue Geometry RenderType Opaque Queue是一般渲染时候的顺序 RenderType是后处理特效使用的渲染顺序 Background Geometry AlphaTest
  • JAVA中XML格式字符串转为javabean(对象),然后返回xml格式字符串

    一 引入相关依赖 pom xml文件配置如下所示
  • Road Construction POJ - 3352(tarjan双连通缩点模板)

    题目描述 给一个无向连通图 至少添加几条边使得去掉图中任意一条边不改变图的连通性 即使得它变为边双连通图 include
  • CH3___Debugging C++ Programs

    3 1 Syntax and semantic errors Modern compilers have been getting better at detecting certain types of common semantic e
  • Linux下yum命令及软件的安装

    yum命令 1 yum install softwarename 安装 2 yum remove softwarename 卸载 安装dhcp及卸载 mkdir iso 建立目录 mv home kiosk Desktop iso iso
  • tcp 是一个安全的网络协议

    1 tcp 是一个安全的网络协议 确定双方的收发能力之后 才会真正传输数据 2 tcp 建立起一个连接 比较消耗成本 所以比较平稳 安全 3 3次握手 发起连接 双方确认 确认双方的收发能力 客户端告诉服务器i我要创建连接i 一次 服务器告
  • 出栈的合法性检测

    对于一个给定的入栈顺序 可能的出栈顺序会有很多 但是肯定都要遵循栈 后进先出 的特点 那么怎么进行合法性检测呢 算法思想如下 定义变量InIndex标记入栈序列的当前位置 定义OutIndex标记出栈序列的当前位置 对InIndex和Out
  • 利用纯净语音和噪声合成不同信噪比的训练数据

    如题 这应该算是我前往语音这座大山的第一步 在此做出记录 一 工作背景 由于需要进行单通道降噪的实验 但是现在只有纯净语音和噪声数据 而在阅读文章的过程中 大家并没有将这个细小的内容写道论文中 的确也不应该 做出来之后确实感觉蛮简单的 所以

随机推荐

  • python爬虫ip被封怎么办?

    用python写的爬虫 设置了headers 包括host和useragent 设置了cookies 访问的结果是 访问过于频繁 请输入验证码 但是用浏览器访问怎么刷新都没有问题 这个时候大致可以判定你被反爬虫锁定 那怎样解决 你可能不太了
  • Python无法识别csv文件

    我的报错 utf 8 codec can t decode byte 0xc9 in position 84 invalid continuation byte 大概意思是utf 8无法识别文件里的一些信息 后面将encoding里面改成下
  • 【Java编程】图书管理系统

    图书管理系统 我们用一个列表存放书籍信息 private static List
  • paxos算法_共识算法(8) —— PBFT 算法详解

    本文翻译自 伊利诺伊大学厄巴纳 香槟分校助理教授 Ling Ren 开设的讨论课 CS598 Consensus Algorithm 参考论文 PBFT 原论文 1999 pmg csail mit edu 前言 上一节中我们介绍了经典的P
  • IDEA项目初次上传到git(超简单)

    IDEA上传到git 1 右键项目 打开 终端 2 在打开的终端输入 git init 3 右键项目 选择 git gt 添加 add 4 右键项目 选择 git gt 提交 commit 输入 init 点击 提交并推送 commit a
  • Ehoney开源欺骗防御系统

    一 特点 支持丰富的蜜罐类型 通用蜜罐 SSH 蜜罐 Http蜜罐 Redis蜜罐 Telnet蜜罐 Mysql蜜罐 RDP 蜜罐 IOT蜜罐 RTSP 蜜罐 工控蜜罐 ModBus 蜜罐 基于云原生技术 基于k3s打造saas平台欺骗防御
  • 创建一们计算机语言_建立自己的计算机语言

    创建一们计算机语言 只需编码 如果您想构建自己的计算机语言 但又不知道该如何开始 或者您认为自己没有时间和技能来做到这一点 那么请看鲍勃 尼斯特罗姆 Bob Nystrom 的 技巧翻译 一书 即从刮 从一开始到成熟的面向对象的东西就是这样
  • JDBC工具类——JdbcUtils

    JdbcUtils 一 JDBC的工具类 二 JdbcUtils工具类的组成 1 类加载时加载驱动 2 连接池 db properties 3 ThreadLocal控制事务 4 dbcp连接池提高资源利用率 三 JDBC工具类的实例演变
  • Ubuntu opencv的搭建

    打开终端 apt install cmake 依次输入以下的命令 sudo apt get install cmake git libgtk2 0 dev pkg config libavcodec dev libavformat dev
  • Linux字符集的查看及修改

    一 查看字符集 字符集在系统中体现形式是一个环境变量 以CentOS6 5为例 其查看当前终端使用字符集的方式可以有以下几种方式 第一种 root Testa www tmp echo LANG zh CN UTF 8 第二种 root T
  • Nvidia显卡硬件编解码能力表 官方链接

    记录用 便于快速查找 从表中得知 1070支持 H265 10bit 硬件编码 似乎不错 官方链接 https developer nvidia com video encode and decode gpu support matrix
  • C++虚函数表地址偏移

    include
  • 架构图以及vue的简介

    架构图 前后端分离总架构图 前端架构设计图 MVVM 架构模式 MVVM 的简介 MVVM 由 Model View ViewModel 三部分构成 Model 层代表数据模型 也可以在Model中定义数据修改和操作的业务逻辑 View 代
  • 公务员和事业单位的差别有多大?

    公务员和事业单位是两种不同的就业形式和组织类型 它们在以下几个方面存在一些差别 1 归属关系 公务员属于政府部门的编制人员 直接依附于政府机构 而事业单位是独立法人实体 独立承担法人责任 不隶属于政府机构 2 支付方式 公务员工资由政府财政
  • 算法训练 P0505

    标题 include
  • 基于GBDT+LR模型的深度学习推荐算法

    GBDT LR算法最早是由Facebook在2014年提出的一个推荐算法 该算法分两部分构成 第一部分是GBDT 另一部分是LR 下面先介绍GBDT算法 然后介绍如何将GBDT和LR算法融合 1 1 GBDT算法 GBDT的全称是 Grad
  • flutter GridView和Wrap

    GridView有2种gridDelegate 记录小嵌套冲突的问题 SingleChildScrollView ListView GrilView嵌套问题解决 子布局添加属性 physics NeverScrollableScrollPh
  • Windows 10 Office文件图标异常处理(Word

    1 我们经常会遇到office重新安装完成后 或者换了版本后 前期做好的excel ppt word文件可以正常打开 但图标显示为白色或者异常 备注 如果不能正常打开 则是office程序没有关联到 只需要选中需打开文件 右键 更改 里面找
  • MODBUS TCP协议实例数据帧详细分析

    MODBUS TCP协议实例数据帧详细分析 1 简介 2 ModbusTCP数据帧 2 1 报文头MBAP 2 2 帧结构PDU 3 ADU详细结构 3 1 0x01 读线圈 3 2 0x02 读离散量输入 3 3 0x03 读保持寄存器
  • 达梦数据库,大小写敏感这个参数怎么设置

    达梦数据库 大小写敏感这个参数怎么设置 1 1 现象描述 达梦在安装完软件后 需要初始化数据库实例 其他大部分数据库 也是同样的操作 但是 达梦在初始化数据库实例前 有几个需要特别注意的参数 这几个参数一定要特别关注 因为如果设置错了 是不