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

WHERE SALARY LIKE '200%'

查找以 200 开头的任何值。

2

WHERE SALARY LIKE '%200%'

查找在任何位置都有 200 的任何值。

3

WHERE SALARY LIKE '_00%'

查找在第二位和第三位都有 00 的任何值。

4

WHERE SALARY LIKE '2_%_%'

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

5

WHERE SALARY LIKE '%2'

查找以 2 结尾的任何值。

6

WHERE SALARY LIKE '_2%3'

查找第二位有 2 且以 3 结尾的任何值。

7

WHERE SALARY LIKE '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 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

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

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

输出

这将产生以下结果。

ID 姓名 年龄 地址 薪水
1 Ramesh 32 Ahmedabad 2000.00
3 Kaushik 23 Kota 2000.00
广告