如何理解DM 中的大小写敏感

更新时间:2023-06-19 07:19:31 阅读: 评论:0

如何理解DM7中的大小写敏感
1.前言
在我们初始化达梦数据库的时候,有一个重要的参数,叫做大小写敏感。
我们很容易知道这个参数的意思,这参数决定数据库区分字符串时是否区分大小写。那么,我们勾不勾选这个选项,对我们的数据库又有什么影响呢,本文就将给大家做个演示。稀疏平常
注:本文实验环境的DM7数据库版本为:
留党察看最长不超过DM Databa Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT
2.关闭大小写敏感参数的情况
创建表
create table test2(aa varchar(30));
什么人不怕冷查看存储字段为小写
lect name from SYSOBJECTS where name ='test2'
如果使用大写表名查看,也可以查到
老爸老妈
lect name from SYSOBJECTS where name ='TEST2'
东北财经大学分数线
但是结果仍然是小写
通过小写的字段名查看,可以找到
lect * from SYSCOLUMNS where NAME like '%aa%' and ID
=(lect ID from SYSOBJECTS where name ='test2');
通过大写的字段名查看,也可以找到
lect * from SYSCOLUMNS where NAME like '%AA%' and ID
=(lect ID from SYSOBJECTS where name ='test2');
防火工程此时,如果我们尝试创建表大写的TEST2,则会报错提示该表已存在
总结:由此我们可知,在大小心不敏感的情况下,如果我们用小写的名字创建表,SQL不会自动把表名转换为大写。但是,在查询时,我们可用任意的大小写来进行查询。同时,表test和TEST在数据库中会被识别文同一个对象,所以在有test表的情况下,再创建TEST表时则会报错。
3.开启大小写敏感参数的情况
创建表
create table test2(aa varchar(30));
此时如果我们用小写的表名去查询
lect name from SYSOBJECTS where name ='test2',则会查不到结果。
事实上,此时该表会以大写的的名字存在数据库中,这是因为,我们没有用双括号把test2引起来。在大小写敏感的环境下,系统会把SQL中的没有标识符的小写名字自动转换为大写存在数据库中,验证如下:
天津体育学院学报通过大写表名来查询,就可以找到
力排众议lect name from SYSOBJECTS where name ='TEST2'
所以在大小写敏感的情况下,如果我们想要创建小写的表名,则要这样写create table "test2"("aa" varchar(30));
这时创建语句不会报错,证明同名的大小写表名是可以在大小写敏感的数据库中共存的,测试也确实如下:
lect name from SYSOBJECTS where name in
('TEST2','test2')
总结:当开启大小写敏感的时候,如果我们想要利用SQL语句查询或者创建小写的对象名,我们需要利用双括号把小写部分括起来,否则系统会自动把内容转换为大写;同时,大写和小写的对象名在系统中是被区分开,可以共存的。

本文发布于:2023-06-19 07:19:31,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1045248.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:小写   大写   数据库
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图