SQL - 通配符


SQL 通配符

SQL 通配符是一种特殊字符,用于替代字符串中的一个或多个字符。它们与 SQL 中的 LIKE 运算符一起使用,以搜索字符串中的特定模式或比较各种字符串。

SQL 中的 LIKE 运算符区分大小写,因此它只会匹配大小写与指定模式完全相同的字符串。

以下是 SQL 中最常用的通配符 -

编号 通配符和描述
1

百分号 (%)

匹配一个或多个字符。

- MS Access 使用星号 (*) 通配符而不是百分号 (%) 通配符。

2

下划线 (_)

匹配一个字符。

- MS Access 使用问号 (?) 而不是下划线 (_) 来匹配任一字符。

百分号 (%) 表示字符串中的零个、一个或多个字符。下划线(_)代表单个字符或数字。这些符号还可以组合使用以在 SQL 查询中执行复杂的模式搜索和匹配。

句法

以下是使用通配符的基本语法 -

SELECT * FROM table_name
WHERE column_name LIKE [wildcard_pattern];

我们可以使用 AND 或 OR 运算符组合 N 个条件。这里,[wildcard_pattern]可以表示任何数字或字符串值。

下表演示了在 WHERE 子句中将通配符与 LIKE 运算符结合使用的各种方法:

编号 声明及说明
1

工资像“200%”

查找以 200 开头的任何值。

2

工资如“%200%”

查找任意位置包含 200 的任意值。

3

工资像“_00%”

查找第二个和第三个位置上有 00 的任何值。

4

工资像“2_%_%”

查找以 2 开头且长度至少为 3 个字符的任何值。

5

工资类似于“%2”

查找以 2 结尾的任何值。

6

工资像“_2%3”

查找第二个位置上有 2 且以 3 结尾的所有值。

7

工资像“2___3”

查找以 2 开头并以 3 结尾的五位数字中的任何值。

例子

首先,让我们使用以下查询创建一个名为 CUSTOMERS 的表 -

CREATE TABLE CUSTOMERS (
   ID INT NOT NULL,
   NAME VARCHAR (20) NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR (25),
   SALARY DECIMAL (18, 2),       
   PRIMARY KEY (ID)
);

以下 INSERT 查询将记录添加到 CUSTOMERS 表中 -

INSERT INTO CUSTOMERS VALUES 
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00),
(2, 'Khilan', 25, 'Delhi', 1500.00),
(3, 'Kaushik', 23, 'Kota', 2000.00),
(4, 'Chaitali', 25, 'Mumbai', 6500.00),
(5, 'Hardik', 27, 'Bhopal', 8500.00),
(6, 'Komal', 22, 'Hyderabad', 4500.00),
(7, 'Muffy', 24, 'Indore', 10000.00);

该表将创建为 -

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000.00
2 基兰 25 德里 1500.00
3 考希克 23 科塔 2000.00
4 柴塔利 25 孟买 6500.00
5 哈迪克 27 博帕尔 8500.00
6 科马尔 22 海得拉巴 4500.00
7 莫菲 24 印多尔 10000.00

在这里,我们显示 CUSTOMERS 表中 SALARY 以 200 开头的所有记录。

SELECT * FROM CUSTOMERS WHERE SALARY LIKE '200%';

输出

这将产生以下结果。

ID 姓名 年龄 地址 薪水
1 拉梅什 32 艾哈迈达巴德 2000.00
3 考希克 23 科塔 2000.00