干货分享之如何理解DM7中的大小写敏感
- 格式:pdf
- 大小:284.05 KB
- 文档页数:3
【干货分享】DMRMAN脱机备份常见错误我们在使用DMRMAN工具脱机备份时总是遇到各种问题,今天整理了下常用问题及解决方法,供大家参考。
本章内容已在如下环境上测试:操作系统:中标麒麟7、Windows 10 64位数据库版本:达梦8相关关键字:DM8,DMRMAN备份,管道连接超过,创建dmap管道失败常见错误[-7103]:创建命名管道失败【问题现象】:中标麒麟7环境,在将达梦数据库bin路径配置到环境变量path中,可以在任意目录下执行DMRMAN命令,但是进入DMRMAN后执行备份命令,会有如下报错:[-7103]:创建命名管道失败。
【问题原因】:当执行DMRMAN命令进行备份操作的时,会根据DMRMAN命令所在路径下寻找由DM_PIPE_开头的管道文件,而不是通过path设置的环境变量路径来寻找对应的管道文件,DM_PIPE_一般是在bin目录下生成。
【解决方法】:使用DM安装用户dmdba进入DM安装bin目录下启动DMRMAN工具,执行备份脚本提示成功。
[-7105]:管道连接超时【问题现象】:中标麒麟7环境,使用root用户启动DMRMAN工具,执行备份命令报错[-7105]:管道连接超时。
【问题原因】:root用户不是DM数据库安装用户,不能使用root启动DMRMAN工具。
【解决方法】:使用DM安装用户dmdba启动DMRMAN工具,执行备份命令即正常。
[-8109]:创建dmap管道失败,请检查dmap是否已经启动【问题现象】:中标麒麟7环境,dmdba在bin目录下启动DMRMAN工具,执行备份命令报错[-8109]:创建dmap管道失败,请检查dmap是否已经启动。
【问题原因】:没有启动DmAPService服务。
【解决方法】:使用root用户执行如下命令启动DmAPService服务。
启动后执行备份命令正常。
[root@localhost ~]# systemctl start DmAPService.service如若Windows 10环境下,DmAPService服务已启动,仍然报这个错误,请使用以管理员身份运行cmd命令;同样如果在控制台工具上也报此错误,请使用以管理员身份运行控制台工具。
神奇的数字7±2:我们信息加工能力的局限作者: 陈向明发表日期: 2007-10-22 10:26神奇的数字七(The Magic Number Seven)说起跟“七”有关的现象、故事、传说来,大家估计都能滔滔不绝一阵子,而且古今中外人民对于“七”都颇为钟爱。
著名的有比如世界七大奇迹,音乐有七个音阶,一周有七天,七年之痒,战国七雄,七仙女下凡,七夕鹊桥会,七个小矮人,辛巴达七海传奇,七宗罪,七色光等等,圣经里还说上帝同学花了七天来创造世界,最离谱的是古代犹太人民治疗发烧的偏方-要从七棵棕榈树上摘七根刺,七根梁上取七条屑,七扇门上起七根钉子….等等等等,最后居然还要从一条老狗脸上拔七根胡须,真不知发高烧的是病人还是医生。
虽然上面罗列的多半是些不大靠谱的传说甚至是童话故事,scorp今天要现学现卖可是确确实实有科学依据的关于“七”的神奇之处--我们短期记忆的极限。
故事的全貌是这样的,我们这学期上写作课的时候,有一次老师要我们读一份极艰深晦涩的文献摘要,读了没一半大家就崩溃了,觉得完全不知所云无法理解。
老师要我们划出句子的主谓结构,一划之下才发现该摘要的第一句话竟然有5行之长,而最要命的是谓语居然到了第五行才懒洋洋的踱着方步出现。
中文和英文尽管在有些方面大相径庭,然而有一点相同,就是谓语出现之前读者的心都是悬着的,直到看到谓语才放下心来算是了解了句子的大概。
汉语还好,基本是没什么结构元素可以插在主谓之间的,英语里可以用主语从句啊,再碰上个拿主语从句定语从句“因为所以”“虽然但是”套圈玩的作者,这读者可就倒了大霉了,还没等看到谓语估计就得呕血数斗,而我们碰到的正是这种情况。
这些跟“神奇的数字七”有什么关系呢?正是“七”决定了我们在碰到这样的句子时会受到如此煎熬--因为七加减二乃是我们瞬时记忆的极限。
如果在碰到谓语之前我们得到了多于7条信息,等我们熬到跟谓语见面的时刻早已经忘记了主语究竟是什么。
达梦数据库汉字存储知多少1、前言当我们在DM7中处理汉字的时候,经常会用到varchar的数据类型。
但是,根据数据库初始化时的参数不同,varchar中能存储的汉字的个数也不尽相同。
那么在每种情况下,字符的存储有什么区别呢?本文就将带大家一探究竟2、参数简介在使用DMINIT初始化数据库的时候,我们有以下这两个跟字符集有关的参数,UNICODE_FLAG和LENGTH_IN_CHAR。
UNICODE_FALG:此参数表示了数据库中所有数据的字符集,包括数据字典的字符集。
需要注意的是,数据库一旦初始化完成,字符集就将无法修改。
我们可以使用select unicode来查询当前数据库的字符集种类,0代表gb18030,1代表UTF-8。
LENGTH_IN_CHAR:此参数决定了,数据库中的VARCHAR类型对象的长度是否以字符为单位。
取值为1则设置为以字符为单位,将存储长度值按照理论字符长度进行放大。
取值为0则所有 VARCHAR 类型对象的长度以字节为单位。
同样,如果我们采用DBCA助手来创建数据库,也可以在初始化参数那一步来修改这两个参数的值。
3、测试根据Unicode和length_in_char的取值不同(0或1),我们总共初始化四个不同的数据库,针对不同的情况进行测试。
本文演示环境: DM Database Server x64 V7.1.6.48-Build(2018.03.01-89507)ENT3.1、UNICODE_FLAG=0,LENGTH_IN_CHAR=0根这种情况是初始化数据库时的默认配置,即字符集为gb18030,varchar 长度以字节为单位。
相关测试如下SQL> create table test(name varchar(3));操作已执行SQL> insert into test values('测');影响行数 1SQL> insert into test values('测a');影响行数 1SQL> insert into test values('测试');[-6169]:列[NAME]长度超出定义.我们知道,gb18030下一个汉字或者全角字符一般需要占用两个字节。
python字符串加解密原理Python字符串加解密原理1. 加密和解密的概念•加密:将明文经过特定算法转换成密文,使其不易被破解。
•解密:将密文通过相应的算法还原为明文,以便阅读和使用。
2. Python字符串加密模块Python提供了众多加密模块,其中一种常用的是hashlib模块。
该模块提供了一系列的加密算法,如MD5、SHA1等。
3. MD5加密算法MD5是一种常用的加密算法,具有以下特点:•不可逆性:无法通过密文推导出明文。
•定长输出:无论明文长度如何,MD5加密后的结果都是固定长度(128位)。
4. MD5加密示例下面是一个使用MD5加密字符串的简单示例:import hashlibdef md5_encrypt(string):md5 = ()(('utf-8'))return ()plain_text = "Hello, world!"encrypted_text = md5_encrypt(plain_text)print(f"明文: {plain_text}")print(f"密文: {encrypted_text}")5. SHA1加密算法SHA1是另一种常用的加密算法,具有以下特点:•不可逆性:无法通过密文推导出明文。
•定长输出:SHA1加密后的结果为160位,比MD5更安全。
6. SHA1加密示例下面是一个使用SHA1加密字符串的简单示例:import hashlibdef sha1_encrypt(string):sha1 = ()(('utf-8'))return ()plain_text = "Hello, world!"encrypted_text = sha1_encrypt(plain_text)print(f"明文: {plain_text}")print(f"密文: {encrypted_text}")7. 对称加密算法除了哈希函数外,还存在着对称加密算法,其加解密使用相同的密钥。
7位ascii码解读
ASCII码是最常用的字符编码标准之一,它将每个字符用一个
7位的二进制数表示。
ASCII码共定义了128个字符,包括26个
大写字母、26个小写字母、10个数字以及一些常见的符号和控制
字符。
使用ASCII码解读的方法很简单,只需将每个字符对应的7位
二进制数转换成十进制,即可得到该字符的ASCII码值。
例如,字符'A'对应的ASCII码值为65,即十进制的65。
同理,字符'a'对应的ASCII码值为97,字符'0'对应的ASCII码值为48。
ASCII码除了用于显示文本外,还可用于字符的排序和比较。
由于ASCII码是按照字符的字母顺序排列的,因此可以通过比较
两个字符的ASCII码值来确定它们的大小关系。
ASCII码的广泛应用使得它成为计算机领域中不可或缺的一部分。
无论是编写程序、发送电子邮件还是浏览网页,都离不开ASCII码的支持。
因此,对于计算机用户来说,了解ASCII码的
基本知识是非常重要的。
ASCII码是一种将字符映射成二进制数的编码标准,它的应用
广泛且不可或缺。
通过理解和运用ASCII码,我们可以更好地理
解和操作计算机中的字符数据。
MySQL查询⼤⼩写是否敏感问题分析mysql数据库在做查询时候,有时候是英⽂字母⼤⼩写敏感的,有时候⼜不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不⽀持的⼤⼩写字母敏感的。
1. 什么是字符集和校验规则?字符集是⼀套符号和编码。
校对规则是在字符集内⽤于⽐较字符的⼀套规则。
任何⼀个给定的字符集⾄少有⼀个校对规则,它可能有⼏个校对规则。
要想列出⼀个字符集的校对规则,使⽤SHOW COLLATION语句。
校对规则⼀般有这些特征:两个不同的字符集不能有相同的校对规则。
每个字符集有⼀个默认校对规则。
例如,utf8默认校对规则是utf8_general_ci。
存在校对规则命名约定:它们以其相关的字符集名开始,通常包括⼀个语⾔名,并且以_ci(⼤⼩写不敏感)、_cs(⼤⼩写敏感)或_bin(⼆元)结束。
2. 不同级别的字符集和校验规则可控制⼤⼩写敏感MySQL5.1在同⼀台服务器、同⼀个数据库或甚⾄在同⼀个表中使⽤不同字符集或校对规则来混合定义字符串。
字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
2.1服务器级MySQL按照如下⽅法确定服务器字符集和服务器校对规则:(1)修改配置⽂件/etc/f在[mysqld]下添加:collation_server = utf8_bin重启实例更改服务器级的校验规则(collation_server )后,数据库校验规则(collation_collation)默认会继承服务器级的。
注意:这个只适⽤于在重新启动之后, 新建的库,已存在的库不受影响.同样的, 即使库的校验规则改了,已经存在的表不受修改影响;同理与已经存在的列...谢谢的提醒mysql>create database yutest0;Query OK, 1 row affected (0.00 sec)mysql>use yutest0;Database changedmysql>create table t1 (name varchar(10));Query OK, 0 rows affected (0.01 sec)mysql>insert into t1 values('AAA');Query OK, 1 row affected (0.00 sec)mysql>insert into t1 values('aaa');Query OK, 1 row affected (0.01 sec)mysql>select*from t1;+------+| name |+------+| AAA || aaa |+------+2 rows in set (0.00 sec)mysql>select*from t1 where name='aaa';+------+| name |+------+| aaa |+------+1 row in set (0.00 sec)可以看出,在服务器级进⾏相应的校对规则设置,查询⼤⼩写敏感。
如何理解DM7中的大小写敏感1.前言在我们初始化达梦数据库的时候,有一个重要的参数,叫做大小写敏感。
我们很容易知道这个参数的意思,这参数决定数据库区分字符串时是否区分大小写。
那么,我们勾不勾选这个选项,对我们的数据库又有什么影响呢,本文就将给大家做个演示。
注:本文实验环境的DM7数据库版本为:DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT2.关闭大小写敏感参数的情况创建表create table test2(aa varchar(30));查看存储字段为小写select name from SYSOBJECTS where name ='test2'如果使用大写表名查看,也可以查到select name from SYSOBJECTS where name ='TEST2'但是结果仍然是小写通过小写的字段名查看,可以找到select * from SYSCOLUMNS where NAME like '%aa%' and ID=(select ID from SYSOBJECTS where name ='test2');通过大写的字段名查看,也可以找到select * from SYSCOLUMNS where NAME like '%AA%' and ID=(select ID from SYSOBJECTS where name ='test2');此时,如果我们尝试创建表大写的TEST2,则会报错提示该表已存在总结:由此我们可知,在大小心不敏感的情况下,如果我们用小写的名字创建表,SQL不会自动把表名转换为大写。
但是,在查询时,我们可用任意的大小写来进行查询。
同时,表test和TEST在数据库中会被识别文同一个对象,所以在有test表的情况下,再创建TEST表时则会报错。
在C语言中,变量命名规则的注意事项对于代码的可读性和可维护性至关重要。
以下是需要注意的几个方面:1. **清晰简洁**:变量名应该简洁明了,能够清晰地表达变量的含义。
避免使用过于复杂的名称,以免影响代码的可读性。
2. **避免使用保留字**:避免使用C语言的保留字作为变量名,这些字会被编译器识别为关键字,从而引发错误。
3. **使用有意义的名称**:变量名应该能够准确地描述变量的用途。
使用有意义的名称有助于提高代码的可读性和可维护性。
4. **大小写组合**:在C语言中,变量名区分大小写。
因此,变量名应该使用小写字母组合,以避免与其他变量名混淆。
5. **长度限制**:C语言对变量名的长度没有严格的限制,但过长的名称会增加代码的复杂性和可读性。
通常建议将变量名限制在25个字符以内。
6. **驼峰命名法**:驼峰命名法是一种常见的变量命名规则,即将多个单词组合在一起,每个单词的首字母小写,其余字母大写。
这种命名法有助于提高代码的可读性,并使代码更易于理解。
7. **不要使用特殊字符**:在C语言中,变量名只能包含字母、数字和下划线。
避免使用特殊字符,以免引起混淆或引发错误。
8. **类型暗示**:如果变量是一个特定的数据类型(如整数、浮点数、数组等),应该在变量名中显式地暗示该变量的类型。
例如,可以使用“count”表示计数器变量,“data”表示数据变量等。
9. **遵循一致性**:在整个代码库中,应该保持变量命名的一致性。
采用相同的命名约定和风格有助于提高代码的可读性和可维护性。
下面是一个示例,展示了一个符合上述规则的变量命名:```cint numberOfStudents; // 变量名清晰简洁int totalScore; // 避免使用保留字int student1Score; // 使用有意义的名称int i; // 使用小写字母组合float avgGrade; // 驼峰命名法int scores[5]; // 避免使用特殊字符```通过遵循这些规则,可以提高代码的可读性和可维护性,减少潜在的错误和问题。
centos7 用户id命名规则-回复CentOS7 用户ID命名规则什么是用户ID?在CentOS7中,每个用户都有一个唯一的用户ID(User ID),用于标识和管理用户的身份和权限。
用户ID是一个数字,通常是从0开始的整数。
用户ID在Linux系统中非常重要,它决定了用户对文件和系统资源的访问权限。
为什么要遵循命名规则?遵循用户ID命名规则的好处是确保系统的安全和可管理性。
一个规范的命名规则能够帮助系统管理员更好地管理和维护用户账户,同时也方便其他用户理解和识别特定用户的身份和权限级别。
CentOS7 用户ID命名规则在CentOS7中,用户ID命名规则主要包括以下几个方面:长度、字符组成、保留名称和命名约定。
1. 长度限制:一般情况下,用户ID应该限制在8个字符以内。
这是因为在一些文件系统中,用户名的长度是有限制的,超过一定长度后会被截断。
2. 字符组成:用户ID应该由小写字母、数字和下划线组成。
禁止使用其他特殊字符、空格、以及中文字符等。
同时,用户ID应该以字母开头,并且不能以下划线结尾。
3. 保留名称:在CentOS7中,有一些用户ID是系统保留的,不能随意使用。
这些保留名称包括root、admin、operator等,一些数字也被保留,例如0、1等。
因此,在选择用户ID时,需要避免使用这些保留名称。
4. 命名约定:为了方便识别用户的身份和权限级别,可以使用一些命名约定。
例如,可以在用户ID中加入部门或角色的信息,以及使用下划线或连字符来区分单词,增加可读性。
例如,admin或root用户可以使用管理员的缩写作为用户ID,例如adm或radmin。
步骤一:选择合适的用户ID在创建一个新用户时,首先需要选择一个合适的用户ID。
根据上述规则,选择一个符合长度、字符组成以及命名约定的用户ID。
步骤二:检查用户ID的唯一性在CentOS7中,每个用户ID应该是唯一的。
在创建新用户时,需要先检查该用户ID是否已经被其他用户使用。
编程语言中的数据类型命名规范与最佳实践在编程中,数据类型是非常重要的概念。
它定义了变量可以存储的数据的种类和范围,为程序的正确性和性能提供了基础。
为了编写清晰、可读性强的代码,遵循一定的数据类型命名规范和最佳实践是至关重要的。
1. 使用有意义的名字数据类型的命名应该反映其所表示的含义和用途。
使用具有描述性的名字可以使代码更易于理解和维护。
例如,对于表示用户姓名的字符串变量,命名为"userName"或"fullName"比命名为"str1"或"s"更具可读性。
2. 遵循命名约定不同的编程语言有不同的命名约定,但大多数语言都采用驼峰命名法或下划线命名法。
驼峰命名法将多个单词连接在一起,每个单词的首字母大写,例如"firstName"。
下划线命名法使用下划线分隔单词,例如"first_name"。
选择一种命名约定,并在整个代码中保持一致,以提高代码的可读性。
3. 避免使用缩写和简写尽量避免使用缩写和简写作为数据类型的命名。
虽然缩写可以节省一些打字的工作,但它们通常会降低代码的可读性。
使用完整的单词来描述数据类型,以确保代码的可读性和可维护性。
4. 使用复数形式表示集合当命名表示集合的数据类型时,应该使用复数形式。
例如,如果一个变量表示一个学生的集合,命名为"students"比命名为"student"更准确。
这样的命名方式可以清晰地表达变量的含义,避免引起误解。
5. 避免使用保留字编程语言中有一些保留字,它们被用于表示特定的语法结构或功能。
为了避免与这些保留字冲突,应该避免将保留字用作数据类型的命名。
如果不确定某个词是否为保留字,可以查阅相关的编程语言文档或规范。
6. 使用一致的命名风格在一个项目中,应该使用一致的命名风格来命名数据类型。
这样可以使代码更易于理解和维护。
dm-verity是一种用于Android系统的完整性验证机制。
它通过在设备的分区上创建一个只读的校验区域,来验证系统分区的完整性。
具体原理如下:
1. 在系统分区上创建一个只读的校验区域,该区域包含了一个校验表和一组校验块。
2. 校验表中记录了系统分区中每个数据块的哈希值。
3. 当设备启动时,系统会加载校验表到内存中。
4. 在系统分区上的每个数据块被读取时,dm-verity 会计算该数据块的哈希值,并与校验表中对应的哈希值进行比较。
5. 如果哈希值匹配,则数据块被认为是完整的,可以继续使用。
6. 如果哈希值不匹配,则数据块被认为是被篡改的,系统会拒绝使用该数据块,并可能触发相应的安全机制。
通过使用dm-verity,Android系统可以在启动时验证系统分区的完整性,以防止恶意软件或未经授权的修改对系统的破坏。
这有助于提高系统的安全性和稳定性。
强密码校验正则
一、长度要求
密码长度应至少为8个字符,以增强安全性。
二、字符组合
密码应包含以下三种类型的字符:
1.小写字母
2.大写字母
3.数字
4.特殊字符(例如@,#,$等)
三、禁止简单密码
密码不应过于简单或与个人信息相关,例如:
1.生日
2.名字
3.常见短语(例如“password”等)
四、禁用特殊字符
密码中不应包含特殊字符,以避免混淆和易于输入。
五、不连续字符要求
密码应至少包含以下两种不连续字符中的一种:
1.大写字母和小写字母混合使用(例如,“aBcDeF”)
2.数字和字母混合使用(例如,“Abc123”)
六、数字和字母组合
密码应至少包含以下两种数字和字母组合中的一种:
1.连续的数字和字母组合(例如,“123Ab”)
2.重复的数字和字母组合(例如,“Abccba”)
七、禁用常见短语
密码中不应包含常见的短语或句子,以增加破解难度。
如何理解DM7中的大小写敏感1.前言在我们初始化达梦数据库的时候,有一个重要的参数,叫做大小写敏感。
我们很容易知道这个参数的意思,这参数决定数据库区分字符串时是否区分大小写。
那么,我们勾不勾选这个选项,对我们的数据库又有什么影响呢,本文就将给大家做个演示。
注:本文实验环境的DM7数据库版本为:DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT2.关闭大小写敏感参数的情况创建表create table test2(aa varchar(30));查看存储字段为小写select name from SYSOBJECTS where name ='test2'如果使用大写表名查看,也可以查到select name from SYSOBJECTS where name ='TEST2'但是结果仍然是小写通过小写的字段名查看,可以找到select * from SYSCOLUMNS where NAME like '%aa%' and ID=(select ID from SYSOBJECTS where name ='test2');通过大写的字段名查看,也可以找到select * from SYSCOLUMNS where NAME like '%AA%' and ID=(select ID from SYSOBJECTS where name ='test2');此时,如果我们尝试创建表大写的TEST2,则会报错提示该表已存在总结:由此我们可知,在大小心不敏感的情况下,如果我们用小写的名字创建表,SQL不会自动把表名转换为大写。
但是,在查询时,我们可用任意的大小写来进行查询。
同时,表test和TEST在数据库中会被识别文同一个对象,所以在有test表的情况下,再创建TEST表时则会报错。
摩斯电码规律
摩斯电码,作为一种用于传输信息的编码系统,已经有着悠久的历史。
它由点(·)和划(-)组成,通过不同长度的点划排列来表示不同的字母和数字。
这种编码方式的规律性使得它成为了通信领域中不可或缺的一部分。
摩斯电码的规律性体现在多个方面。
首先,它遵循着一套明确的编码规则,每个字母和数字都有固定的点划组合。
例如,字母A用·-表示,字母B用-···表示,而数字1用·----表示,数字2用··---表示,以此类推。
这种规律性使得人们能够快速准确地识别和传输信息。
摩斯电码的速度和节奏也有一定的规律。
在传输摩斯电码时,点划之间有短暂的间隔,不同字母和数字之间有较长的间隔。
这种规律性使得接收者能够根据间隔的长短来判断传输的是一个字母还是一个数字,从而更好地理解信息的含义。
摩斯电码的规律性还体现在其使用的环境和应用上。
由于摩斯电码的传输方式简单可靠,不受环境干扰的影响,因此在一些特殊的情况下被广泛应用。
例如,在海上通信中,摩斯电码可以通过灯光或声音传输,以便远距离的通信。
在战争时期,摩斯电码也被用作军事通信的重要手段。
摩斯电码的规律性使得它在信息传输中发挥着重要作用。
它不仅仅是一种编码方式,更是一种文化和技术的传承。
尽管现在的通信方
式已经发展得更加高效和便捷,但摩斯电码的规律性依然值得我们深思。
它提醒我们,在信息传输中,规律性和稳定性是至关重要的,只有遵循规律和秩序,我们才能更好地传递和理解信息。
如何理解DM7中的大小写敏感
1.前言
在我们初始化达梦数据库的时候,有一个重要的参数,叫做大小写敏感。
我们很容易知道这个参数的意思,这参数决定数据库区分字符串时是否区分大小写。
那么,我们勾不勾选这个选项,对我们的数据库又有什么影响呢,本文就将给大家做个演示。
注:本文实验环境的DM7数据库版本为:
DM Database Server x64 V7.1.6.46-Build(2018.02.08-89107)ENT
2.关闭大小写敏感参数的情况
创建表
create table test2(aa varchar(30));
查看存储字段为小写
select name from SYSOBJECTS where name ='test2'
如果使用大写表名查看,也可以查到
select name from SYSOBJECTS where name ='TEST2'
但是结果仍然是小写
通过小写的字段名查看,可以找到
select * from SYSCOLUMNS where NAME like '%aa%' and ID
=(select ID from SYSOBJECTS where name ='test2');
通过大写的字段名查看,也可以找到
select * from SYSCOLUMNS where NAME like '%AA%' and ID
=(select ID from SYSOBJECTS where name ='test2');
此时,如果我们尝试创建表大写的TEST2,则会报错提示该表已存在
总结:由此我们可知,在大小心不敏感的情况下,如果我们用小写的名字创建表,SQL不会自动把表名转换为大写。
但是,在查询时,我们可用任意的大小写来进行查询。
同时,表test和TEST在数据库中会被识别文同一个对象,所以在有test表的情况下,再创建TEST表时则会报错。
3.开启大小写敏感参数的情况
创建表
create table test2(aa varchar(30));
此时如果我们用小写的表名去查询
select name from SYSOBJECTS where name ='test2',则会查不到结果。
事实上,此时该表会以大写的的名字存在数据库中,这是因为,我们没有用双括号把test2引起来。
在大小写敏感的环境下,系统会把SQL中的没有标识符的小写名字自动转换为大写存在数据库中,验证如下:
通过大写表名来查询,就可以找到
select name from SYSOBJECTS where name ='TEST2'
所以在大小写敏感的情况下,如果我们想要创建小写的表名,则要这样写create table "test2"("aa" varchar(30));
这时创建语句不会报错,证明同名的大小写表名是可以在大小写敏感的数据库中共存的,测试也确实如下:
select name from SYSOBJECTS where name in
('TEST2','test2')
总结:当开启大小写敏感的时候,如果我们想要利用SQL语句查询或者创建小写的对象名,我们需要利用双括号把小写部分括起来,否则系统会自动把内容转换为大写;同时,大写和小写的对象名在系统中是被区分开,可以共存的。