sql通配符当您想要查找符合特定条件的数据或查找数据中的模式时,则可以使用通配符查询。在SQL中,通配符的字符与语句一起使用,例如SELECT语句,以便检索由模式确定的数据。例如,如果您想在包含模式“Ville”的表格中找到所有城市,请使用通配符将使您能够这样做。有不同的通配符字符,您可以选择使用,使用情况将取决于搜索的目的以及您打算收集的数据类型。

发现SQL查询并希望了解更多?在Udemy上课程。

通配符

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

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

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

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

\ *,\ _(与另一个字符以及另一个字符一起允许角色将反向册进行视为文字;您必须设置逃生以便使用此技术)

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

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

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

[*] [?](方括号允许括号内的角色被视为文字)

#(井号用于查找特定的数字)

[a-z](方括号中两个字符之间用逗号分隔,用于查找有范围的模式)

使用通配符的例子

场景1

在您的第一个例子中,您有一家公司进行了一项调查,其中调查接受者已进入居住的城镇或城市的名称。您想搜索输入的城市,包括“Ville”。以下是名为starch_tbl的表,您最初将使用:

survey_id survey_city.

1452年港湾

1468年Cayey.

1489年Keokuk

1463年桑迪亚小山

1452年Waynesville

1476斯巴达

1421年森林河

1411年邓肯落

1451 Sunnyvale.

1434达文口

1458年停止

1428年矿产

1542年Myerstown

1578 Mocksville.

1563 Pattonsburg.

1598年沙湖

1563年Maplewood

1542诺顿海岸

1572年Reedsville

1516年北Bellmore

1584年Hyattsville

1621 Windsor Place

1656只蜜蜂脊

1642年Camptonville

1682年约翰斯顿城市

1625年Niceville

1721年Springport

1742 Knightdale.

1765 Waldenburg.

1795年Troutville

1799年东格林维尔

1821 Reinbeck.

1874年阿什维尔

1863年6月公园

1846年松树山谷

为了找到哪些城市或城镇包括字母“Ville”(根据该顺序),您可以使用包含适当的通配符的查询以及类似条件的查询,例如以下情况:

SELECT Survey_Tbl FROM SURVEY_CITY WHERE SURVEY_CITY LIKE ' %ville% '

在访问权限中,查询将如下:

SELECT Survey_Tbl WHERE SURVEY_CITY LIKE ' *VILLE* '

survey_id survey_city.

1452年Waynesville

1458年停止

1578 Mocksville.

1572年Reedsville

1584年Hyattsville

1642年Camptonville

1625年Niceville

1795年Troutville

1799年东格林维尔

1874年阿什维尔

注意,在Oracle示例中,我输入了被搜索的字符串“ville”;这是由于区分大小写的原因。如果将数据库设置为区分大小写,那么小写或大写字母都是一个重要因素。在上面的例子中,如果我搜索了“VILLE”,那么查询就不能产生成功的结果。您可以注意正在搜索的数据的大小写,也可以使用其他选项,使您不必知道表中数据的大小写类型就可以进行搜索,或者禁用数据库的大小写敏感性。

对于Oracle SQL,在某些情况下,可以使用以下命令将所有数据设置为大写类型,然后再运行其他命令:

设定SQLCASE较高;

有兴趣在Oracle SQL中获得更多技能吗?参加Udemy课程。

场景2

在第二个场景中,您的任务是找到用于面包店的表格中使用小麦粉的所有条目。如前所述,使用下划线字符的通配符查询可以使用多个字符。通配符查询中的下划线可用于尝试匹配任何字符,并且可以在其前面或后面加上单个字符。以下是您将使用的表格:

Select * from Flour_Tbl;

RECIPE_ID RECIPE_NAME FLOUR_TYPE

41234香草蛋糕万能

41235坚果面包小麦

41236年椒盐卷饼面包

41237巧克力蛋糕通用

41238日期方块糕点

41239快速面包自立

41240万能芝士饼干

41241万能茶饼干

41242开心果松饼通用

41243小麦煎饼小麦

41244披萨壳面包

41245胡萝卜蛋糕小麦

41246酥皮酥皮

41247黑莓烤饼小麦

您可以使用查询在FLOUR_TYPE字段中搜索具有模式“W_eat”的条目;如:

选择Recipe_id,Recipe_name,Flow_type来自flow_tbl,其中flow_type喜欢'w_eat';

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

RECIPE_ID RECIPE_NAME FLOUR_TYPE

41235坚果面包小麦

41243小麦煎饼小麦

41245胡萝卜蛋糕小麦

41247黑莓烤饼小麦

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

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

RECIPE_ID RECIPE_NAME FLOUR_TYPE

41243小麦煎饼小麦

场景3

在这种情况下,您的目标是从BOLL_TYPE列中查找来自BOLL_TBL表的值,该表没有“小麦”的值。在这种情况下,您可以使用包含不均匀的参数的查询。可用于排除值的通配符查询的示例如下:

选择Recipe_ID,Recipe_name,Flow_tbl of flow_tbl,其中flow_type不像'w_%';

RECIPE_ID RECIPE_NAME FLOUR_TYPE

41234香草蛋糕万能

41236年椒盐卷饼面包

41237巧克力蛋糕通用

41238日期方块糕点

41239快速面包自立

41240万能芝士饼干

41241万能茶饼干

41242开心果松饼通用

41244披萨壳面包

41246酥皮酥皮

您想通过实例学习更多关于Oracle SQL的知识吗?参加Udemy课程。

结论

通配符可以为查询提供灵活性,因为可以使用多种组合进行查询。通配符查询可以帮助查找符合特定条件的值、排除值、搜索范围等。如果没有通配符查询等选项,在数据库中搜索特定字符和其他值将是一项更加繁琐的任务。

SQL中的顶级课程

SQL和PostgreSQL:完整的开发人员指南
Stephen主梁
4.7 (1,466)
收视率最高
完整的SQL训练营2021:从零到英雄
何塞Portilla
4.7 (99,199)
畅销书
终极MySQL训练营:从SQL初学者到专家
Colt Steele,Ian Schoonover
4.6 (54,389)
畅销书
SQL - 用于数据分析和商业智能的MySQL
365职业
4.6 (27,853)
畅销书
高级SQL:SQL Expert认证准备课程
9万多名学员,Code Star学院
4.5 (2,214)
完整的SQL和数据库训练营:零到精通[2021]
Andrei Neagoie, Mo Binni
4.6 (1480)
SQL初学者:学习SQL使用MySQL和数据库设计
Tim Buchalka的学习编程学院,Jon Avis - SQL讲师
4.5 (11354)
SQL&PostgreSQL为初学者:成为一个SQL专家
Jon Avis - SQL讲师
4.6 (3241)
畅销书
实用SQL训练营的数据分析师和数据科学家
艾娃中科院博士
4.6 (633)
SQL编程基础知识
国际学院
4.4 (114)

更多SQL课程

SQL学生还学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求演示