如何在 SQL 中使用 LIKE

2024 年 8 月 29 日 | 阅读 6 分钟

在本文中,我们将学习如何在 SQL 数据库的表中对 LIKE 进行列操作。

什么是 LIKE?

LIKE 是一个 SQL 运算符,用于在字段的每一行中搜索特定模式。此运算符始终与 SQL 语句中的 WHERE 子句一起使用。

在结构化查询语言中使用 Like 运算符的语法

在结构化查询语言中,LIKE 运算符与以下两个通配符字符结合使用

  1. 百分号 (%)
  2. 下划线 (_)

百分号 (%)

此符号或通配符字符可将任何字符串与零个、一个或多个字符进行比较。

将百分号与 LIKE 运算符一起使用的语法

1. 以下语法匹配所有以字符 'M' 开头的字符串

2. 以下语法匹配所有以字符 'M' 结尾的字符串

3. 以下语法匹配所有在任何位置包含字符 'M' 的字符串

4. 以下语法匹配所有以字符 'M' 开头并以字符 'T' 结尾的字符串

下划线 (_)

此通配符字符在 SQL 中可将任何字符串与单个字符进行比较。

将下划线符号与 LIKE 运算符一起使用的语法

1. 以下语法匹配所有只包含两个字符的字符串

2. 以下语法匹配所有在第二个位置包含字符 'm' 的字符串

3. 以下语法匹配所有至少包含 5 个字符并以字符 'M' 开头的字符串

如果要将 SQL LIKE 运算符添加到表中的列,您必须按给定顺序遵循以下步骤

  1. 在系统中创建一个数据库。
  2. 在数据库中创建表并将数据插入数据库。
  3. 查看插入的数据
  4. 将 LIKE 运算符应用于表中的列。

现在,我们将通过一个例子来解释上述步骤

步骤 1:创建数据库

在结构化查询语言中,创建数据库是存储数据库中结构化表的第一步。

使用以下 SQL 语法创建数据库

假设您要创建 **College** 数据库。为此,您需要在结构化查询语言中键入以下命令

步骤 2:创建表并插入数据

现在,使用以下 SQL 语法在您的数据库中创建表

假设您要在 **College** 数据库中创建带有五个列的 **Student** 表。为此,您需要在应用程序中编写以下查询

现在,您需要使用以下语法将数据插入表中

使用以下查询将多个学生的记录插入 **College** 数据库的 **Student** 表中

步骤 3:查看插入的数据

创建表和插入数据后,您可以通过在 SQL 应用程序中键入以下查询来查看 **Student** 表中插入的记录


Roll_No名字城市年龄百分比级别
101Akash德里1889A2
102BhaveshKanpur1993A1
103Yash德里2089A2
104Bhavna德里1978B1
105Yatin勒克瑙2075B1
106IshikaGhaziabad1991C1
107Vivek果阿2080B2

步骤 4:将 Like 运算符应用于表中的列

以下查询显示了 Student 表中First_Name 以 **'B'** 字母开头的学生的记录

上述查询的输出

Roll_No名字百分比级别
102Bhavesh93A1
104Bhavna78B1

如上所示,表中只包含 Bhavesh 和 Bhavna 的记录,因为他们的名字以 B 开头。

以下查询显示了 Student 表中First_Name 以 **'h'** 字母结尾的学生的记录

上述查询的输出

Roll_No名字百分比级别
101Akash89A2
102Bhavesh93A1
103Yash89A2

如上所示,表中只包含 Akash、Bhavesh 和 Yash 的记录,因为他们的名字以 h 结尾。

以下查询显示了给定 Student 表中First_Name 在任何位置都包含字符 **'a'** 的学生的记录

上述查询的输出

Roll_No名字城市年龄百分比级别
101Akash德里1889A2
102BhaveshKanpur1993A1
103Yash德里2089A2
104Bhavna德里1978B1
105Yatin勒克瑙2075B1
106IshikaGhaziabad1991C1

如 SQL 输出所示,表中包含除 **Vivek** 学生之外的所有学生的记录,因为 **Vivek** 的名字在任何位置都不包含字母 **'a'**。

以下查询显示了 Student 表中 City 名称以 **'D'** 字母开头并以 **'I'** 字母结尾的学生的记录

上述查询的输出

Roll_No名字城市百分比
101Akash德里89
103Yash德里89
104Bhavna德里78

如上 SQL 输出所示,表中只包含 City 为 Delhi 的学生的记录。

以下查询显示了 Student 表中 Percentage 以 '7' 开头的学生的记录

上述查询的输出

Roll_No名字城市年龄百分比级别
104Bhavna德里1978B1
105Yatin勒克瑙2075B1

如上 SQL 输出所示,表中只包含分数是 78 和 75 的学生的记录。

以下查询显示了 Student 表中First_Name 在第三个位置包含 **'a'** 的学生的记录

上述查询的输出

Roll_No名字城市百分比级别
101Akash德里89A2
102BhaveshKanpur93A1
104Bhavna德里78B1

如上所示,表中只包含 **First_Name** 在第三个位置包含字符 **'a'** 的学生的记录。


下一个主题SQL 中的游标