SQL - 万用字符:初学者的友好指南

你好,有抱负的SQL爱好者!今天,我们将深入到SQL万用字符的奇妙世界。别担心如果你是编程新手——我会一步一步地引导你了解这个主题,就像我多年来教导无数学生一样。所以,拿起你最喜欢的饮料,让我们一起开始这段令人兴奋的SQL冒险吧!

SQL - Wildcards

什么是SQL万用字符?

在我们深入了解细节之前,让我们先了解SQL中的万用字符是什么。想象你在玩纸牌游戏,你有一张百搭牌,可以代表牌堆中的任何一张牌。这在SQL中的万用字符几乎就是如此——它们是特殊的字符,可以代表字符串中的一个或多个其他字符。

当你在搜索数据但不知道确切的值时,万用字符非常有用。它们就像SQL世界的侦探犬,嗅出符合特定模式的数据。

SQL万用字符的类型

让我们来认识一下我们的万用字符。每个字符都有其独特的能力:

万用字符 描述 示例
% 代表零个、一个或多个字符 'b%' 匹配 'bear', 'big', 'banana'
_ 代表一个字符 'h_t' 匹配 'hot', 'hat', 'hit'
[charlist] 代表 charlist 中的任意一个字符 '[bsp]at' 匹配 'bat', 'sat', 'pat'
[^charlist] 或 [!charlist] 代表不在 charlist 中的任意一个字符 '[^bsp]at' 匹配 'cat', 'rat',但不匹配 'bat'

SQL万用字符的语法

现在我们已经认识了我们的万用字符朋友,让我们看看如何在SQL查询中使用它们。你主要会在SQL语句的WHERE子句中使用万用字符,通常与LIKE运算符一起使用。

以下是基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE columnN LIKE pattern;

pattern 是我们的万用字符发挥作用的地方。让我们看一些示例,了解这在实践中是如何工作的。

SQL万用字符示例

示例 1:使用 % 万用字符

假设我们有一个名为 Fruits 的表,其中有一个列 FruitName。我们想要找到所有以字母 'a' 开头的水果。

SELECT * FROM Fruits
WHERE FruitName LIKE 'a%';

这个查询可能会返回以下结果:

  • Apple
  • Apricot
  • Avocado

'%' 在 'a' 之后意味着 "紧跟 'a' 后可以有任意数量的字符"。

示例 2:使用 _ 万用字符

现在,让我们找到所有名字正好有5个字母的水果。

SELECT * FROM Fruits
WHERE FruitName LIKE '_____';

这可能返回:

  • Apple
  • Mango
  • Peach

每个 _ 代表一个字符,所以五个下划线意味着我们在寻找正好有五个字符的名字。

示例 3:组合万用字符

我们也可以组合万用字符来匹配更复杂的模式。让我们找到所有以 'b' 开头并以 'y' 结尾的水果:

SELECT * FROM Fruits
WHERE FruitName LIKE 'b%y';

这可能返回:

  • Berry
  • Blackberry
  • Boysenberry

示例 4:使用 [charlist]

现在,让我们找到所有以 'p' 或 'c' 开头的水果:

SELECT * FROM Fruits
WHERE FruitName LIKE '[pc]%';

这可能返回:

  • Peach
  • Pear
  • Cherry
  • Coconut

示例 5:使用 [^charlist]

最后,让我们找到所有不以 'a', 'b' 或 'c' 开头的水果:

SELECT * FROM Fruits
WHERE FruitName LIKE '[^abc]%';

这可能返回以下水果:

  • Mango
  • Durian
  • Fig

输出和解释

当你运行这些查询时,你的数据库管理系统将返回一个包含所有符合万用字符模式的行的表格。这就像要求数据库用你的数据玩一场 "猜猜看" 的游戏!

例如,如果我们运行示例 1 中的查询:

SELECT * FROM Fruits
WHERE FruitName LIKE 'a%';

我们可能会看到如下输出:

FruitID FruitName Color
1 Apple Red
3 Apricot Orange
7 Avocado Green

这告诉我们我们的数据库中有三种水果是以 'a' 开头的,并展示了我们关于这些水果的所有信息。

结论

就这样,朋友们!我们已经探索了SQL万用字符的野性和奇妙世界。这些小字符可能看起来很简单,但它们是你SQL工具箱中非常强大的工具。它们允许你在数据中搜索模式,使你的查询更加灵活和强大。

记住,熟能生巧。尝试创建你自己的表格并尝试不同的万用字符组合。在你意识到之前,你将能够像专业人士一样使用万用字符,轻松地在数据堆中找到针!

快乐查询,愿你的数据始终结构良好,你的查询永远成功!

Credits: Image by storyset