SQL 通配符
先决条件:SQL WHERE子句
在上面提到的文章中讨论了WHERE子句,其中还解释了LIKE操作符,在这里您一定遇到了单词通配符,现在让我们更深入地了解通配符。
通配符与LIKE操作符一起使用,有四种基本操作符:
Operator | Description |
---|---|
% | 它用于替换零个或多个字符。 |
_ | 它用来代替一个字符。 |
_ | 它用于替换一个字符范围。 |
(range_of_characters) | 它用于获取括号内指定的匹配字符集或范围。 |
[^ range_of_characters]或[!range_of_characters) | 它用于获取括号内指定的不匹配的字符集或范围。 |
基础语法:
SELECT column1,column2 FROM table_name WHERE column LIKE wildcard_operator;
column1 , column2: 表中的字段
table_name: 表的名称
column: 用于过滤数据的字段名
查询
- 从Student表中获取NAME以字母“T”结尾的记录。
SELECT * FROM Student WHERE NAME LIKE '%T';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
- 从Student表中获取NAME以任何字母结尾但以’ RAMES ‘开头的记录。
SELECT * FROM Student WHERE NAME LIKE 'RAMES_';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
- 从Student表中获取地址包含字母’ a ‘, ‘ b ‘或’ c ‘的记录。
SELECT * FROM Student WHERE ADDRESS LIKE '%[A-C]%';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
2 | RAMESH | GURGAON | XXXXXXXXXX | 18 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
- 从Student表中获取地址不包含字母’ a ‘, ‘ b ‘或’ c ‘的记录。
SELECT * FROM Student WHERE ADDRESS LIKE '%[^A-C]%';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
1 | Ram | Delhi | XXXXXXXXXX | 18 |
4 | SURESH | Delhi | XXXXXXXXXX | 18 |
- 从Student表中获取记录,其中PHONE字段第一个位置为“9”,第四个位置为“5”。
SELECT * FROM Student WHERE PHONE LIKE '9__5%';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age
—|—|—|—|—
1 | Ram | Delhi | XXXXXXXXXX | 18
* 从Student表中获取地址为6个字符的记录。
SELECT * FROM Student WHERE ADDRESS LIKE '______';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |
- 从Student表中获取任何位置的地址包含’ OH ‘的记录,结果集不应该包含重复的数据。
SELECT DISTINCT * FROM Student WHERE ADDRESS LIKE '%OH%';
输出:
ROLL_NO | NAME | ADDRESS | PHONE | Age |
---|---|---|---|---|
3 | SUJIT | ROHTAK | XXXXXXXXXX | 20 |