数据库大小写是否敏感由初始化参数设置,初始化之后无法修改,影响表现及初始化之后的控制方法可见以下说明。
库级大小写是否敏感影响
(1)标识符
大小写敏感的库中,小写的标识符应使用 "" 括起,就可以区分大小写,意味着你可以创建相同名称不同大小写的表、索引等对象,或者在一张表中拥有不同大小写的列名。
大小写不敏感的库中,以上操作就不允许了,标识符被双引号括起不会使数据库区分大小写。
(2)数据库用户密码
在达梦中,用户管理相关功能并不受大小写是否敏感参数的影响。用户名会始终强转为大写,无论有没有使用双引号包裹,CREATE USER、ALTER USER 均如此,而密码始终区分大小写。
(3)模式管理
在大小写敏感的库中可拥有两个同名不同大小写的模式,这两个模式需要属于同一个用户。
在大小写不敏感的库中就只可以拥有大写的模式名。
(4)数据管理
在大小写敏感的库中,数据存储及数据比较区分大小写。
在大小写不敏感的库中,数据存储本身仍是保持原有的大小写,但是比较的时候默认不区分。
当前会话大小写是否敏感属性
如下 SQL 设置当前会话的数据比较大小写敏感属性,8.1.2.192 之前版本可能失败。
ALTER SESSION SET CASE_SENSITIVE= DEFAULT | TRUE | FALSE
该属性只会影响会话内字符串数据大小写比较,优先级低于 BINARY 前缀。
BINARY 前缀
BINARY 前缀方式用于设置表达式比较时为大小写敏感,多个条件列可以设置某一列为大小写敏感。例如,如下查询 ,查询出 C1='t' 和 NAME = 'TOM' 的数据,其中 NAME 大小写敏感。
SELECT * FROM T_1 WHERE C1='t' AND BINARY NAME = 'TOM' ;
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!