SQL通配符当您希望查找符合特定条件的数据或查找数据中的模式时,可以使用通配符查询。在SQL中,通配符与语句(如SELECT语句)一起使用,以检索由模式确定的数据。例如,如果您希望在一个包含模式“ville”的表中找到所有城市,那么使用通配符将使您能够这样做。您可以选择使用不同的通配符,其使用取决于搜索的目的以及您想要收集的数据类型。

发现SQL查询并想了解更多?上Udemy的课程。

通配符

与许多SQL对象一样,Oracle和Access使用不同选项的通配符。

Oracle使用以下符号作为通配符:

%(%符号用于查找带有字符串的模式)

_(下划线用于查找只有一个字符的模式;搜索条件可包含多个字符)

\*, \_(一个反斜杠加上另一个字符允许进行反斜杠的字符被当作文字;你必须设置一个escape来使用这个技巧)

访问使用以下符号来获取通配符:

*(星号用于查找带有字符串的模式)

吗?(问号用于查找含有一个字符的模式;搜索条件可包含多个字符)

[*] [?](方括号允许方括号内的字符被视为字面量)

#(磅标志用于查找特定数字)

[A-Z](括号内用逗号分隔的两个字符的方括号用于查找与范围的模式)

使用通配符的例子

场景1

在第一个例子中,有一家公司进行了一项调查,调查人员输入了他们居住的城镇或城市的名称。你想要搜索的城市或城镇输入包含模式“ville”。下面是一个名为Survey_Tbl的表,您将最初使用它:

SURVEY_ID SURVEY_CITY

1452湾点

1468年Cayey

1489 keokuk.

1463桑迪亚大吼

1452 Waynesville.

1476 Sparta.

1421林河

1411邓肯瀑布

1451年森尼维耳市

1434年达文波特

1458 Clarkesville.

1428矿产

1542 Myerstown.

1578年Mocksville

1563年Pattonsburg

1598沙湖

1563 Maplewood.

1542年诺顿海岸

1572 Reedsville.

1516北贝尔莫尔

1584 Hyattsville.

1621年温莎的地方

1656蜜岭

1642 Camptonville.

1682 Johnston City

1625 Niceville.

1721 Spricport.

1742年Knightdale

1765年瓦尔登堡

1795 Troutville.

1799东格林维尔

1821年Reinbeck

1874阿什维尔

1863年6月公园

1846个松树谷

为了找到哪些城市或城镇包含字母“ville”(按这个顺序),你可以使用一个包含适当通配符和LIKE条件的查询,如下面所示:

选择survey_id,survey_city from survey_tbl,其中survey_city等'%ville%';

在Access中,查询如下:

从Survey_tbl中选择Survey_ID,Survey_city,其中Survey_city(如'* Ville *');

SURVEY_ID SURVEY_CITY

1452 Waynesville.

1458 Clarkesville.

1578年Mocksville

1572 Reedsville.

1584 Hyattsville.

1642 Camptonville.

1625 Niceville.

1795 Troutville.

1799东格林维尔

1874阿什维尔

请注意,我已输入被搜索为Oracle示例的“Ville”的字符串;这是由于敏感性的理由。如果数据库已设置为区分大小写,则表示为小写或大写的字母是一个重要因素。在上面的示例中,如果我会搜索“Ville”,那么查询就无法生成成功的结果。您可以注意到您正在搜索的数据的情况,您可以使用其他选项,允许您搜索,而无需了解表中的数据类型,或者您可以对数据库进行激活的案例灵敏度。

对于Oracle SQL,在某些情况下,您可以使用以下命令将所有数据设置为在运行其他命令之前将所有数据设置为大写的大写:

设置Sqlcase upper;

对获得更多Oracle SQL技能感兴趣吗?拿一个udemy类。

场景2.

在第二个方案中,您已被任务查找在用于面包店的表中使用小麦面粉的所有条目。如前所述,使用下划线字符可以用于通配符查询的多个字符。通配符查询中的下划线可用于尝试匹配任何字符,并且可以通过单个字符进行前面或进行。以下是您将使用的表:

选择*来自flow_tbl;

crecape_id crecape_name flow_type.

41234 vanilla蛋糕通用

41235坚果面包小麦

41236椒盐脆饼面包

41237万能巧克力蛋糕

41238枣方酥

41239快速面包自我上升

41240奶酪饼干通用

41241茶饼干通用

41242万能开心果松饼

41243小麦煎饼小麦

41244披萨面包

41245胡萝卜蛋糕小麦

41246糕点贝壳糕点

41247黑莓烤饼小麦

您可以使用查询搜索Flow_type字段中具有模式“w_eat”的条目的查询;如以下内容:

SELECT RECIPE_ID, RECIPE_NAME, FLOUR_TYPE FROM Flour_Tbl WHERE FLOUR_TYPE LIKE 'W_eat';

在Access中,查询将使用问号(?)而不是下划线(_)。

crecape_id crecape_name flow_type.

41235坚果面包小麦

41243小麦煎饼小麦

41245胡萝卜蛋糕小麦

41247黑莓烤饼小麦

类似地,为了进一步演示Underscore通配符的使用,您可以使用以下查询来查找以字母“W”开头的所有配方名称:

选择Recipe_ID,Recipe_name,Flob_type从flow_tbl,其中recape_name(如'w_%');

crecape_id crecape_name flow_type.

41243小麦煎饼小麦

场景3.

在这个场景中,您的目标是从FLOUR_TYPE列、从Flour_Tbl表中寻找值不为“Wheat”的值。在本例中,您可以使用包含参数NOT和LIKE的查询。可以用来排除值的通配符查询示例如下:

SELECT RECIPE_ID, RECIPE_NAME, FLOUR_TYPE FROM Flour_Tbl WHERE FLOUR_TYPE NOT LIKE 'W_%';

crecape_id crecape_name flow_type.

41234 vanilla蛋糕通用

41236椒盐脆饼面包

41237万能巧克力蛋糕

41238枣方酥

41239快速面包自我上升

41240奶酪饼干通用

41241茶饼干通用

41242万能开心果松饼

41244披萨面包

41246糕点贝壳糕点

您想通过使用示例了解有关Oracle SQL的更多信息吗?拿一个udemy类。

结论

通配符可以为查询提供灵活性,因为有一个可用于查询的各种组合。通配符查询可以帮助查找符合特定标准的值,不包括值,搜索范围等。在数据库中搜索特定字符和其他值,在没有诸如通配符查询之类的选项的繁琐任务。

SQL顶级课程

SQL Server: 27小时大师班课程- 8个课程在1
O.Thuillier | SQL | Postgres | Powershell| MySQL |管理、TSQL和SQL Server性能。
4.7 (19)
SQL和PostgreSQL:完整的开发人员指南
斯蒂芬格莱德里
4.7 (1,437)
评价最高
完整的SQL Bootcamp 2021:从零到英雄
何塞波罗拉
4.7 (98866)
畅销书
Ultimate MySQL BootCamp:从SQL初学者到专家
柯尔特·斯蒂尔,这是伊恩·斯库诺弗
4.6 (54,115)
畅销书
SQL - MySQL的数据分析和商业智能
365年职业生涯
4.6 (27,713)
畅销书
高级SQL: SQL专家认证准备课程
Oracle Master Training•全球80,000多名学生,Code Star Academy
4.5 (2,192)
完整的SQL和数据库Bootcamp:零掌握[2021]
安德烈Neageie,Mo Binni
4.6 (1458)
SQL for初学者:使用MySQL和数据库设计学习SQL
Tim Buchalka的学习编程学院,Jon Avis - SQL教练
4.5 (11,082)
SQL & PostgreSQL初学者:成为一个SQL专家
Jon Avis - SQL教练
4.5 (3,198)
畅销书

多个SQL课程

SQL学生也学习

赋予你的团队。引领行业。

使用Udemy for Business订阅在线课程库和数字学习工具。

请求一个演示