SQL 通配符基础使用


发布日期 : 2023-11-13 19:02:11 UTC

访问量: 9 次浏览

SQL 通配符

此前我们学习了 WHERE 子句,并了解了 LIKE 查询运算符,过程中接触到通配符相关概念。
本篇将深入讲解 SQL 通配符的语法规则与实际使用方法。

通配符与LIKE操作符一起使用,有四种基本操作符:

运算符描述
%匹配零个或多个字符。
_匹配单个字符。
[字符范围]匹配指定范围内的单个字符。
[^字符范围][!字符范围]匹配不在指定范围内的单个字符。

基础语法:

SELECT column1,column2 FROM table_name WHERE column LIKE wildcard_operator;

column1, column2:表中的字段

table_name:表的名称

column:用于过滤数据的字段名

SQL 通配符

查询

  • 从Student表中获取NAME以字母“T”结尾的记录。

SELECT * FROM Student WHERE NAME LIKE '%T';

输出:

ROLL_NONAMEADDRESSPHONEAge
3SUJITROHTAKXXXXXXXXXX20
3SUJITROHTAKXXXXXXXXXX20
  • 从Student表中获取NAME以任何字母结尾但以’ RAMES ‘开头的记录。

SELECT * FROM Student WHERE NAME LIKE 'RAMES_';

输出:

ROLL_NONAMEADDRESSPHONEAge
2RAMESHGURGAONXXXXXXXXXX18
  • 从Student表中获取地址包含字母’ a ‘, ‘ b ‘或’ c ‘的记录。

SELECT * FROM Student WHERE ADDRESS LIKE '%[A-C]%';

输出:

ROLL_NONAMEADDRESSPHONEAge
2RAMESHGURGAONXXXXXXXXXX18
2RAMESHGURGAONXXXXXXXXXX18
3SUJITROHTAKXXXXXXXXXX20
3SUJITROHTAKXXXXXXXXXX20
  • 从Student表中获取地址不包含字母’ a ‘, ‘ b ‘或’ c ‘的记录。
SELECT * FROM Student WHERE ADDRESS LIKE '%[^A-C]%';

输出:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhiXXXXXXXXXX18
4SURESHDelhiXXXXXXXXXX18
  • 从Student表中获取记录,其中PHONE字段第一个位置为“9”,第四个位置为“5”。
SELECT * FROM Student WHERE PHONE LIKE '9__5%';

输出:

ROLL_NONAMEADDRESSPHONEAge
1RamDelhiXXXXXXXXXX18
  • 从Student表中获取地址为6个字符的记录。
SELECT * FROM Student WHERE ADDRESS LIKE '______';

输出:

ROLL_NONAMEADDRESSPHONEAge
3SUJITROHTAKXXXXXXXXXX20
3SUJITROHTAKXXXXXXXXXX20
  • 从Student表中获取任何位置的地址包含’ OH ‘的记录,结果集不应该包含重复的数据。
SELECT DISTINCT * FROM Student WHERE ADDRESS LIKE '%OH%';

输出:

ROLL_NONAMEADDRESSPHONEAge
3SUJITROHTAKXXXXXXXXXX20