Sql 简明教程

SQL - Wildcards

SQL Wildcards

SQL Wildcards 是用作字符串中一个或多个字符的替代品的特殊字符。它们与 SQL 中的 LIKE 运算符一起使用,用于在字符串中搜索特定的模式或比较不同的字符串。

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

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

S.No.

Wildcard & Description

1

The percent sign (%) 匹配一个或多个字符。 Note − MS Access 使用星号 (*) 通配符字符,而不是百分号 (%) 通配符字符。

2

The underscore () 匹配一个字符。 Note − MS Access 使用问号 (?),而不是下划线 () 匹配任何一个字符。

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

Syntax

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

SELECT * FROM table_name
WHERE column_name LIKE [wildcard_pattern];

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

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

S.No.

Statement & Description

1

{s1} 查找以 200 开头的任何值。

2

{s2} 查找任何位置包含 200 的任何值。

3

{s3} 查找在第二个和第三个位置包含 00 的任何值。

4

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

5

{s5} 查找以 2 结尾的任何值。

6

{s6} 查找在第二个位置处具有 2 且以 3 结尾的任何值。

7

WHERE SALARY LIKE '2___3' 在以 2 开头、以 3 结尾的五位数中查找任何值。

Example

首先,让我们使用以下查询创建一个名为 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

NAME

AGE

ADDRESS

SALARY

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 表中 SALARY 以 200 开头的所有记录。

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

Output

这会产生以下结果。

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

3

Kaushik

23

Kota

2000.00