SQL区分大小写吗?我用过MySQL和SQL Server,它们似乎都是不区分大小写的。情况总是这样吗?标准是否定义了区分大小写?
当前回答
两全其美
现在你可以用小写字母写所有的SQL语句,如果你需要格式化它,只要安装一个插件就可以了。这只适用于代码编辑器有这些插件的情况。Visual Studio Code有许多扩展可以做到这一点。
这里有两个你可以使用的:vcode -sql-formatter和SqlFormatter-VSCode
其他回答
我发现这篇博文很有帮助(我不是作者)。总结(请阅读):
带分隔符的标识符区分大小写("table_name" != "table_name"),而不带引号的标识符则不区分大小写,并且转换为大写(table_name => table_name)。
他发现DB2、Oracle和Interbase/Firebird是100%兼容的:
PostgreSQL……每个不带引号的标识符都要小写,而不是大写。MySQL……依赖于文件系统。SQLite和SQL Server…表和字段名的大小写在创建时被保留,但在创建后将完全忽略。
这不是严格的SQL语言,但在SQL Server中,如果您的数据库排序是区分大小写的,那么所有表名都是区分大小写的。
SQL关键字本身不区分大小写。
表名、列名等的区分大小写取决于数据库——你应该假定它们是区分大小写的,除非你知道另外的情况(在许多数据库中它们并不是;在MySQL中,表名有时区分大小写,但大多数其他名称不是)。
使用=、>、<等比较数据时,具有区分大小写的能力,这取决于正在使用的单个数据库、表甚至列上的排序规则设置。但是,在数据库中保持排序相当一致是正常的。我们有一些列需要存储区分大小写的值;它们有专门设置的排序规则。
我不认为SQL Server是区分大小写的,至少默认情况下不是。
当我通过SQL Server Management Studio手动查询时,我总是搞砸情况,它很高兴地接受它:
select cOL1, col2 FrOM taBLeName WheRE ...
不。MySQL不区分大小写,SQL标准也不区分大小写。通常的做法是将命令写成大写。
现在,如果您谈论的是表/列名,那么是的,它们是,但不是命令本身。
So
SELECT * FROM foo;
和
select * from foo;
但不一样
select * from FOO;
推荐文章
- SQL语法区分大小写吗?
- MySQL工作台:如何保持连接活动
- 左连接与Where子句
- 如何使用实体框架只更新一个字段?
- 在表变量上创建索引
- 为什么历史上人们使用255而不是256作为数据库字段大小?
- 如何选择记录从过去24小时使用SQL?
- 如何为查询返回的每一行执行存储过程一次?
- 按IN值列表排序
- 如何使用SQL Server 2008做多个CASE WHEN条件?
- 计数在VARCHAR字段中字符串的出现次数?
- 如何选择多行填充常量?
- 修改一个MySQL列为AUTO_INCREMENT
- 如果没有使用EXISTS引入子查询,则只能在选择列表中指定一个表达式
- SQL Server -事务回滚错误?