Sql 简明教程

SQL - Wildcards

SQL Wildcards

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

SQL Wildcards are special characters used as substitutes for one or more characters in a string. They are used with the LIKE operator in SQL, to search for specific patterns in character strings or compare various strings.

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

The LIKE operator in SQL is case-sensitive, so it will only match strings that have the exact same case as the specified pattern.

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

Following are the most commonly used wildcards in SQL −

S.No.

Wildcard & Description

1

The percent sign (%) Matches one or more characters. Note − MS Access uses the asterisk (*) wildcard character instead of the percent sign (%) wildcard character.

2

The underscore () Matches one character. Note − MS Access uses a question mark (?) instead of the underscore () to match any one character.

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

The percent sign (%) represents zero, one, or multiple characters within a string. The underscore (_) represents a single character or number. These symbols can also be used in combination to perform complex pattern searching and matching in SQL queries.

Syntax

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

Following is the basic syntax to use wildcard characters −

SELECT * FROM table_name
WHERE column_name LIKE [wildcard_pattern];

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

We can combine N number of conditions using the AND or the OR operators. Here, the [wildcard_pattern] can represent any numeric or string value.

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

The following table demonstrates various ways of using wildcards in conjunction with the LIKE operator within a WHERE clause:

S.No.

Statement & Description

1

WHERE SALARY LIKE '200%' Finds any values that start with 200.

2

WHERE SALARY LIKE '%200%' Finds any values that have 200 in any position.

3

WHERE SALARY LIKE '_00%' Finds any values that have 00 in the second and third positions.

4

WHERE SALARY LIKE '2_%_%' Finds any values that start with 2 and are at least 3 characters in length.

5

WHERE SALARY LIKE '%2' Finds any values that end with 2.

6

WHERE SALARY LIKE '_2%3' Finds any values that have a 2 in the second position and end with a 3.

7

WHERE SALARY LIKE '2___3' Finds any values in a five-digit number that start with 2 and end with 3.

Example

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

Firstly, let us create a table named CUSTOMERS using the following query −

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 表中添加记录 -

The following INSERT query adds records into the CUSTOMERS table −

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);

该表将被创建为:

The table will be created as −

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 开头的所有记录。

Here, we are displaying all the records from the CUSTOMERS table where the SALARY starts with 200.

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

Output

这会产生以下结果。

This would produce the following result.

ID

NAME

AGE

ADDRESS

SALARY

1

Ramesh

32

Ahmedabad

2000.00

3

Kaushik

23

Kota

2000.00