mysql ,Oracle,dm ,sqlserver 是否区分大小写?

以下是关于MySQL、Oracle、达梦(DM)和SQL Server在环境、标识符和字符串的维度上是否区分大小写

环境:

  • MySQL:在Windows上不区分,在Linux上区分
  • Oracle:不区分
  • DM (达梦):本身是不区分,但是Windows安装达梦工具时,会默认勾选区分大小写
  • SQL Server:不区分

标识符(如表名、列名等):

对于标识符的大小写敏感性,这通常取决于数据库的配置和操作系统。

  • MySQL:在Linux系统上,标识符默认是区分大小写的。但在Windows系统上,由于文件系统不区分大小写,MySQL也默认不区分标识符的大小写。你可以通过设置lower_case_table_names系统变量来更改这个行为。
  • Oracle:Oracle数据库默认不区分标识符的大小写。但是,如果你使用双引号包围标识符,那么Oracle将区分大小写。
  • DM (达梦):达梦数据库默认不区分标识符的大小写。
  • SQL Server:SQL Server默认不区分标识符的大小写。但是,你可以使用方括号[]来强制区分大小写。

字符串:

对于字符串的大小写敏感性,这通常取决于查询中使用的比较运算符和可能的数据库设置。

  • MySQL:在比较字符串时,如果不使用二进制字符串比较(例如BINARY关键字或COLLATE子句),则默认不区分大小写。
  • Oracle:Oracle默认不区分字符串的大小写,除非你使用了二进制比较或特定的排序规则。
  • DM (达梦):达梦数据库默认不区分字符串的大小写。
  • SQL Server:SQL Server默认不区分字符串的大小写。但是,你可以使用COLLATE子句来指定特定的排序规则,从而改变大小写敏感性。

具体设置区分大小写的方法:

  • MySQL:在Linux上,无需额外设置即可区分大小写。
    在Windows上,可以通过设置lower_case_table_names为0来强制区分大小写。
-- 设置MySQL在Windows上区分大小写  
SET GLOBAL lower_case_table_names = 0;
  • Oracle:使用双引号包围标识符来强制区分大小写。
-- 创建一个区分大小写的表名  
CREATE TABLE "MyTable" (id INT);
  • DM (达梦)

修改配置文件
在达梦数据库的配置文件(如dm.ini或dm.cnf)中,可以设置“lower_case_table_names”参数来控制大小写敏感。该参数有以下三个可选值:

  • 0:表示不区分大小写(默认值)。
  • 1:表示区分大小写。
  • 2:表示将所有表名转换为小写。
    例如,要将数据库设置为大小写敏感,可以将“lower_case_table_names”设置为1。
  • SQL Server:使用方括号[]来强制区分标识符的大小写,或使用COLLATE子句来指定字符串比较的大小写敏感性。
-- 创建一个区分大小写的表名  
-- 创建一个区分大小写的列名  
CREATE TABLE MyTable ([ColumnName] INT);  
  
-- 使用COLLATE子句进行区分大小写的字符串比较  
SELECT * FROM MyTable WHERE MyColumn COLLATE Latin1_General_BIN = 'SomeValue';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值