大小写敏感

1 导言

安装完数据库后,需要初始化实例,在初始化实例时,需要注意的问题是关于大小写敏感的设置,大小写敏感只能在初始化数据库的时候设置,默认为大小写敏感,一旦设置成功就无法修改,如果想要修改,只能重新初始化实例。

图形化界面:dbca.sh

命令行工具:dminit

注:可以通过以下方式查看大小写是否敏感
SELECT CASE_SENSITIVE(); ------结果为 1 是大小写敏感,结果为 0 是不敏感

2 定义

大小写敏感:区分大小写
大小写不敏感:不区分大小写

区分大小写针对三个部分:
1) 对象名(表名、存储过程、序列等其他对象)或者字段名(也就是列名)
2) 字段内容
3)其他字符串内容(比如用户输入的字符串类型的条件值,如where COL =‘xxxxxx’ )

注:表名和字段名归根结底就是数据,是系统表里的数据

3 对象名

1)大小写敏感

CREATE TABLE TEST.Abc(COL INT);     ------对于创建表,在大小写敏感的情况下,表名Abc不加双引号,系统会自动转换成大写表名ABC

对比执行情况如下:
SELECT * FROM TEST.Abc;     ------执行成功
SELECT * FROM TEST.ABC;     ------执行成功
SELECT * FROM TEST."Abc";   ------error:无效的表或视图名[Abc]
SELECT * FROM TEST."ABC";   ------执行成功
CREATE TABLE TEST."Abc"(COL INT);
------对于创建表,在大小写敏感的情况下,表名Abc加双引号,即创建的表为Abc

在执行以下操作前须保证前面创建的ABC表不存在
SELECT * FROM TEST.Abc;     ------error:无效的表或视图名[ABC]
SELECT * FROM TEST.ABC;     ------error:无效的表或视图名[ABC]
SELECT * FROM TEST."Abc";   ------执行成功
SELECT * FROM TEST."ABC";   ------error:无效的表或视图名[ABC]

注:(大小写敏感的情况下)
在达梦管理工具(manager)中使用图形化界面的方式创建对象时,如果使用的是小写,系统会自动加上双引号
在查询的时候必须使用双引号来访问

2)大小写不敏感

CREATE TABLE a(C1 INT);    ------对于创建表,在大小写不敏感的情况下,表名a是否加双引号,对查询结果没有影响
SELECT * FROM a;    ------执行成功
SELECT * FROM A;    ------执行成功
SELECT * FROM "a";  ------执行成功
SELECT * FROM "A";  ------执行成功
CREATE TABLE "b"(C1 INT);SELECT * FROM b;    ------执行成功
SELECT * FROM B;    ------执行成功
SELECT * FROM "b";  ------执行成功
SELECT * FROM "B";  ------执行成功

4 字符串内容

CREATE TABLE  MMJ(COL VARCHAR(100));      ---创建表MMJ
INSERT INTO MMJ VALUES('Abc');            ---插入数据Abc
INSERT INTO MMJ VALUES('ABC');            ---插入数据ABC

1)大小写敏感

SELECT COUNT(*) FROM MMJ WHERE COL='Abc';    ------结果为1
SELECT COUNT(*) FROM MMJ WHERE COL='ABC';    ------结果为1

2)大小写不敏感

SELECT COUNT(*) FROM MMJ WHERE COL='Abc';    ------结果为2
SELECT COUNT(*) FROM MMJ WHERE COL='ABC';    ------结果为2

5 不同工具访问数据库

1)disql 访问数据库

需要注意的是:
密码中含有“@“、“/”等特殊字符,此时需要通过转义符来处理。

disql 转义符使用如下:

<1>linux 环境
需要使用双引号将密码包含进来
同时外层再使用单引号进行转义,具体例子如下:

./disql SYSDBA/' "abcd@efgh" '@localhost

<2>windows 环境
需要使用双引号将密码包含进来
同时对双引号使用“\”进行转义,具体例子如下:

disql SYSDBA/\"abcd@efgh\"@localhost

2)manager访问数据库

<1>大小写敏感:
创建小写表对象:需要添加双引号来创建
创建大写表对象:不需要添加双引号来创建
查询小写表对象:需要添加双引号查询
查询大写表对象:不需要添加双引号查询

<2>大小写不敏感:
创建小写表对象:需要添加双引号来创建
创建大写表对象:不需要添加双引号来创建
查询小写表对象:不需要添加双引号来创建
查询大写表对象:不需要添加双引号来创建

不论是大小写敏感还是不敏感,需要注意以下情况
create user “bb” identified by “11111111111”
create user “BB” identified by “11111111111” ------报错:对象[BB]已存在
不可以同时存在两个相同的名称(包括大小写不一致的情况)

3)DTS迁移

在迁移工具中,需要注意:

不勾选“保持对象名大小写”:

勾选“保持对象名大小写”:

<1>大小写敏感:
表对象小写:如果想要迁移过来表对象仍然保持小写,需要勾选“保持对象名大小写”,后期查询时,需要使用双引号查询
表对象大写:不需要勾选“保持对象名大小写”,后期查询时,不需要使用双引号查询,因为会自动转换成大写查询

<2>大小写不敏感:
表对象小写:如果想要迁移过来表对象仍然保持小写,需要勾选“保持对象名大小写”,后期查询时,不需要使用双引号查询
表对象大写:不需要勾选“保持对象名大小写”,后期查询时,不需要使用双引号查询,因为会自动转换成大写查询

4)JDBC或其他接口访问DM数据库

<1>大小写敏感:
查询小写表对象:需要添加双引号查询
查询大写表对象:不需要添加双引号来创建

<2>大小写不敏感:
查询小写表对象:不需要添加双引号来创建
查询大写表对象:不需要添加双引号来创建

6 总结

DML(Data Manipulation Language):数据操作语言-数据库的基本操作,SQL中处理数据等操作统称为数据操纵语言,简而言之就是实现了基本的“增删改查”操作。
包括的关键字有:select、update、delete、insert、merge

DDL(Data Definition Language):数据定义语言-用于定义和管理 SQL数据库中的所有对象的语言,对数据库中的某些对象(例如,database,table)进行管理。
包括的关键字有:create、alter、drop、truncate、comment、grant、revoke

1)大小写敏感的数据库

a.创建表: 若表名或列名未添加双引号“”,则表名和列名会自动转换为大写形式;
<1>若对表名或列名添加双引号“”,则会固定书写时的大、小写
<2>同名的数据库对象,如果大小写不同,那么则为两个不同的对象。

b.字段同上:
一个表中,即使是相同的字段名,只要大小写不同,允许存在同名且不同大小写形式的字段

c.DML 或 DDL 操作时:
<1>如果不对表名或列名添加双引号“”,那么表名和列名都自动转换为大写形式;
<2>对表进行 DML 操作时,如果没有小写形式的字段,不能采取小写加""的形式指定过滤字段,会被认定为无效的字段;
<3>如果对表名或列名添加‘“”,会固定书写时的大、小写形式,“”中是大写形式,则过滤字段就是大写字段,“”中是小写字段,则过滤字段就是小写字段;
<4>对其进行 DML 操作时,需要利用“”指定表名和字段名,否则默认会认定以大写形式去查询对象;
<5>查询时,‘’和“”界定符中字符串区分大小写,界定符中的字符串若是大写形式,那仅查询这个大写形式的对象,若是或小写形式,那仅查询这个小写形式的对象,DML 操作依旧。

2)大小写不敏感的数据库

a.创建表时:
无论对不对表名或列名添加双引号“”,表名和列名的大小写形式不会发生变化,大写形式就是大写形式,小写形式就是小写形式;

b.字段同上:
不允许相同的字段名,即使大小写不同;
查询时,''和""界定符不区分大小写,界定符中的查询或过滤条件即使是大写或小写,都可以查询到预期的结果集。

c.DML 或 DDL 操作时:
<1>无论对不对表名或列名添加"“,表名和列名的大小写形式不会发生变化,大写形式就是大写形式,小写形式就是小写形式;
<2>一个表中,不允许相同的字段名,即使大小写不同;
<3>查询时,''和”"界定符不区分大小写,界定符中的查询或过滤条件即使是大写或小写,都可以查询到预期的结果集,进行 DML 操作时依旧。
在大小写不敏感的情况下,以上情况均不允许存在同名的数据库对象,即使大小写不同,默认也只能存在一个。

详细案例可参考:
http://eco.dameng.com/community/article/df11811a02de8e923c2e57ef6597bc62

【达梦数据库】大小写敏感相关推荐

  1. 达梦数据库大小写敏感介绍

    一.对象名  1.大小写敏感 CREATE TABLE TEST.Abc(COL INT); ------对于创建表,在大小写敏感的情况下,表名Abc不加双引号,系统会自动转换成大写表名ABC 查询情 ...

  2. 达梦数据库初始化实例参数说明(页大小 (page_size)、簇大小 (extent_size)、大小写敏感 (case_sensitive)、字符集 (charset))

    目录 一.实例设置方法 二.各参数设置不同值的区别 1. 页大小 2. 簇大小 3. 标识符大小写敏感 4. 字符集选项 5. VARCHAR 类型长度是否以字符为单位 一.实例设置方法 达梦数据库利 ...

  3. oracle向达梦迁移工作量,从Oracle安全移植到国产达梦数据库的DBA实践

    随着我国对信息安全和自主可控技术的日益重视,国产数据库在党政机关.军队和大型央企等行业中得到了快速应用.达梦数据库(以下简称DM)是国内数据库行业领军企业--达梦推出的一款自主可控的高性能数据库产品. ...

  4. 达梦数据库删除用户_达梦数据库的操作手册.docx

    达梦数据库操作手册2013年12月15日达梦数据库安装服务器安装数据库安装注意问题数据库的安装路径不要直接放在操作系统的/目录相同的磁盘上,可以安装在/dmdb/dm,但是/dmdb要单独挂载在一块硬 ...

  5. 达梦数据库初始化常用参数查询及介绍

    1字符集 字符是各种文字和符号的统称,包括各个国家文字.标点符号.表情.数字等等. 字符集 就是一系列字符的集合.字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉 ...

  6. 达梦数据库-部署及日常工具使用

    DM 数据库安装方式 1.图形化安装 2.命令行安装 3.自动化安装 单机部署 一.操作系统配置检查 1.内核版本大于2.6 [root@itsdata ~]# uname -r 3.10.0-116 ...

  7. 达梦数据库(DM8)基本使用

    DM8软件的安装 安装环境配置 创建安装用户和组 安装用户和组:dmdba,dinstall,-d用户登录的起始目录 -m自动创建用户登入的目录 -s用户登录后使用的shell. [root@loca ...

  8. 中标麒麟运行java,开发知识-中标麒麟安装达梦数据库(DM8)

    环境说明 操作系统版本:NeoKylin Linux Advanced Server release V7Update6 (Chromium) 1.前期准备工作 1.1数据库下载 1.2创建安装用户 ...

  9. Windows达梦数据库安装及整合SpringBoot

    安装教程 前言 下载与安装 配置数据库 使用DM管理工具连接数据库并创建模式(数据库)和表 SpringBoot整合DM数据库的基本配置 后续 前言 由于公司的一个项目要实现软硬件国产化,需要用到达梦 ...

  10. 关系型数据库迁移达梦数据库

    前言 本文章描述对于金融机构纷纷转用国产数据库进行市场调研,在业务背景中做了粗略说明.同时详细介绍达梦数据库特性和优势.在项目中通常会使用第三方组件,在文章中以Flowable为例提供了解决方案. 业 ...

最新文章

  1. 37、iamgeview 图层叠加
  2. webpack+react多页面开发架构
  3. 51nod 2020 排序相减(暴力解法)
  4. SAP CRM Fiori Launchpad 登录之后,看不见任何 tile 的解决办法
  5. 洛谷P2501数字序列 动态规划
  6. Java内存模型–快速概述和注意事项
  7. java 反射 框架_Java 反射,开发框架必备技能
  8. springboot忽略证书_SpringBoot获取resource下证书失败
  9. php session 封装类,PHP封装的数据库保存session功能类
  10. C#实现文件下载的几种方式
  11. hao123谢幕,那是80后青春的记忆
  12. 如何获取qq群成员的资料信息(爬虫)
  13. html化学式编辑器,化学反应方程式编辑器软件(ChemDraw Pro)
  14. 马未都说收藏:陶瓷篇(6、7)宋代八大民窑
  15. __bridge,__bridge_transfer和__bridge_retained详解
  16. LeeCode 算法(Java实现)系列汇总
  17. 炮轰三国服务器维护,炮轰三国上红色要多少个精华 | 手游网游页游攻略大全
  18. springboot+网络空间安全实验教学中心门户网站 毕业设计-附源码191220
  19. 胡水生:中小型企业如何应对互联网的发展
  20. 【手机】手机选购指南

热门文章

  1. ubuntu16.04 系统下用Devstack部署OpenStack
  2. org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法 【转】
  3. recast 4 BuildContours
  4. html转为ipynb,jupyter命令把.ipynb文件转化为.py文件
  5. 工作中写文档的一些经验总结
  6. CET-6 | 2018年 六级真题『翻译』语句
  7. 摸鱼--页面透明化设置和QQ页面透明化设置
  8. SearchView去掉不美观的下划线 两种方法
  9. 如何编译linux驱动ko
  10. 虚拟机使用无线网卡上网配置