SQL 忽略的情况

245 阅读5分钟

SQL ignore-case

SQL忽略大小写简介

SQL的大小写敏感性是指通过指定大写或小写的字母来使用查询语句和关键词表和列。SQL关键字默认设置为不区分大小写,这意味着关键字允许以小写或大写使用。在SQL数据库服务器上,表和列的名称规范被设置为不区分大小写;但是,可以通过配置SQL中的设置来启用和禁用。COLLATION是决定和帮助我们指定SQL中除关键字以外的元素是否允许大小写不敏感的属性。在这篇文章中,我们将学习如何检查决定SQL大小写敏感度的指定整理值,并进一步了解如何使用 lower 和 upper 函数来进行查询,在搜索或应用限制时忽略列值的大小写。在本专题中,我们将学习SQL忽略大小写的知识。

检查SQL服务器的大小写敏感性

我们可以用大写或小写来写SELECT、FROM、WHERE、GROUP BY等关键词,因为它们在SQL中是不分大小写的。除了关键词之外的其他对象,如列、表、视图、触发器、存储过程等的名称,可以是大小写敏感的,也可以是不敏感的。默认情况下,它们被设置为不区分大小写。可以通过使用SQL的Sevrverproperty()函数来检查SQL服务器的COLLATION属性,并将COLLARION作为参数传给它,以获得被设置为该SQL服务器的COLLATION的值。执行后,你将得到如下查询语句的输出中显示的排序值,大多数情况下 -

SELECT Serverproperty('COLLATION') AS COLLATION;

执行上述查询语句的输出结果如下----。

SQL ignore-case output 1

SQL ignore-case output 2

整理值中包含CI或CS。它们分别代表不区分大小写和区分大小写。在上面的输出中,我们可以观察到整理值包含CI,是大小写敏感的,因此在该数据库服务器上进行查询时,除了关键词之外的其他对象可以用大写或小写来指定。这同样适用于关键词,因为它们被允许以任何形式输入,但在大多数情况下,根据惯例以所有大写字母使用它们是一个好的做法。

另外,SQL数据库服务器的拼写属性也可以通过查询存在于SQL服务器sys数据库中的名为databases的表来检查,通过提及name列的值作为你要检查的数据库名称的值来检查特定数据库所允许的大小写敏感性。让我们对我的SQL服务器上现有的名为educba的数据库进行查询,并使用sys数据库中名为表的数据库内容和以下查询语句来检查校对值。

SELECT collation_name AS COLLATION FROM sys.databases WHERE name = 'educba';

执行上述查询语句的输出结果如下,给出的校对值为SQL_Latin1_General_CP1_CI_AS,其中CI代表大小写不敏感,允许我们通过指定非关键词的大写或小写来查询该数据库。

SQL ignore-case output 3

SQL ignore-case output 4

使用LOWER()和UPPER()函数进行大小写不敏感,也就是在查询中忽略大小写。

假设在我的educba数据库中存在一个名为educba_articles的表,该表的校对设置为大小写敏感校对,如下图所示。

SQL ignore-case output 5

让我们通过对该表执行以下查询语句来检查该表的内容----。

SELECT * FROM educba_articles;

执行上述查询语句的输出结果如下----。

output 6

现在,使用下级函数执行下面的查询有助于检索所有提交的记录------。

SELECT * FROM educba_articles WHERE LOWER(status) = "submitted";

执行上述查询语句的输出结果如下--。

output 7

现在,我们将使用函数进行不敏感的比较,如下面的查询语句所示,使用UPPER函数进行比较----。

SELECT * FROM educba_articles WHERE UPPER(status) = "SUBMITTED";

执行上述查询语句的输出结果如下--。

output 8

以类似的方式,UPPER()和LOWER()函数可以在LIKE子句中使用,以获得类似的记录,并使搜索忽略表或数据库中的大小写,显示CS在其整理中是敏感的。考虑到我们必须找出表educba_articles的所有记录,在其名称列中的 "ing "值。我们可以使用LIKE子句来搜索名称中包含 "ing "值的内容,为了进一步搜索,使大小写被忽略,我们将首先使用LOWER()函数。我们的查询语句如下 -

SELECT * FROM educba_articles WHERE LOWER(` name`) LIKE "%ing%";

执行上述查询语句的输出结果如下----。

output 9

现在,让我们使用upper()函数来使用进行忽略大小写搜索的搜索工具。为此,我们的查询语句将如下----。

SELECT * FROM educba_articles WHERE UPPER(` name`) LIKE "%ING%";

执行上述查询语句的输出结果如下----。

output 10

结论--SQL忽略大小写

SQL的大小写敏感度可以通过指定针对数据库、表和列级别的校对来设置,在其中提到CI或CS,分别代表大小写不敏感和大小写敏感,从而对非关键字对象,如表和列进行设置。如果校对设置为CI,包含对大小写不敏感的值,那么就没有必要使用任何函数如LOWER()或UPPER()来使搜索忽略大小写。此外,我们可以使用LOWER()和UPPER()函数使搜索和条件指定忽略SQL中的大小写,而整理方式包含CS。这可以在应用与操作符相等的限制条件或用LIKE关键字搜索时使用,使搜索对大小写不敏感,也就是忽略大小写的搜索或限制条件。

推荐文章

这是一个关于SQL忽略大小写的指南。这里我们讨论了如何检查决定SQL大小写敏感度的指定整理值。

  1. SQL Cluster
  2. PostgreSQL 文本搜索
  3. MySQL交叉连接
  4. sql drop trigger

The postSQL ignore-caseappeared first onEDUCBA.