SQL区分大小写吗?我用过MySQL和SQL Server,它们似乎都是不区分大小写的。情况总是这样吗?标准是否定义了区分大小写?


当前回答

在SQL Server中,这是一个选项。打开它太糟糕了。

我不确定MySQL。

其他回答

SQL关键字是不区分大小写的(SELECT, FROM, WHERE等),但它们通常都是大写的。但是,在某些设置中,表名和列名是区分大小写的。

MySQL有一个配置选项来启用/禁用它。通常区分大小写的表和列名是Linux MySQL的默认值,不区分大小写曾经是Windows的默认值,但现在安装程序在安装过程中询问这一点。对于SQL Server,它是数据库排序规则设置的函数。

这里是关于名称区分大小写的MySQL页面

下面是MSDN中关于SQL Server排序规则的文章

不。MySQL不区分大小写,SQL标准也不区分大小写。通常的做法是将命令写成大写。

现在,如果您谈论的是表/列名,那么是的,它们是,但不是命令本身。

So

SELECT * FROM foo;

select * from foo;

但不一样

select * from FOO;

两全其美

现在你可以用小写字母写所有的SQL语句,如果你需要格式化它,只要安装一个插件就可以了。这只适用于代码编辑器有这些插件的情况。Visual Studio Code有许多扩展可以做到这一点。

这里有两个你可以使用的:vcode -sql-formatter和SqlFormatter-VSCode

SQL关键字本身不区分大小写。

表名、列名等的区分大小写取决于数据库——你应该假定它们是区分大小写的,除非你知道另外的情况(在许多数据库中它们并不是;在MySQL中,表名有时区分大小写,但大多数其他名称不是)。

使用=、>、<等比较数据时,具有区分大小写的能力,这取决于正在使用的单个数据库、表甚至列上的排序规则设置。但是,在数据库中保持排序相当一致是正常的。我们有一些列需要存储区分大小写的值;它们有专门设置的排序规则。

我不认为SQL Server是区分大小写的,至少默认情况下不是。

当我通过SQL Server Management Studio手动查询时,我总是搞砸情况,它很高兴地接受它:

select cOL1, col2 FrOM taBLeName WheRE ...