SQL自学:用通配符进行过滤

在 SQL 中,通配符主要用于进行模糊查询等过滤操作。

常见的通配符有以下两种:

一、百分号(%)

1. 用途: 在 SQL 中,百分号(%)通常作为通配符来匹配任意长度的字符串,包括零长度的字符串。 它可以出现在查询条件的不同位置,以实现不同的匹配模式。

2. 示例: 假设我们有一个名为 customers 的表,其中包含 customer_name`字段。如果我们想要查找所有以“J”开头的客户名称,可以使用以下查询:

SELECT customer_name
FROM customers
WHERE customer_name LIKE 'J%';

在这个查询中,LIKE 'J%'表示查找以“J”开头的客户名称。“J”后面的百分号表示可以跟任意长度的任意字符。

二、下划线(_)

1. 用途: 下划线(_)通配符在 SQL 中用于匹配单个字符。 与百分号不同,下划线只匹配一个确切的字符位置。

2. 示例: 例如,如果我们想要查找客户名称中第二个字符是“o”的客户,可以使用以下查询:

SELECT customer_name
FROM customers
WHERE customer_name LIKE '_o%';

在这个查询中,LIKE '_o%'表示查找第二个字符是“o”的客户名称。第一个下划线表示第一个字符可以是任意字符,“o”是第二个字符,后面的百分号表示可以跟任意长度的任意字符。 不同的数据库管理系统可能对通配符的支持略有不同,但百分号和下划线是比较通用的通配符。

三、方括号([ ])

1. 用途: 在某些数据库中,如 SQL Server,方括号可用于指定字符集合进行匹配。可以用来匹配特定范围内的单个字符。

2. 示例: 例如在 SQL Server 中,查找名字中第一个字符是 A、B 或 C 的记录,可以使用以下查询:

SELECT *
FROM table_name
WHERE column_name LIKE '[ABC]%'; 

二、[^](在方括号内紧跟一个脱字符)

1. 用途: 在 SQL Server 等数据库中,用于匹配不在指定集合中的单个字符

2. 示例: - 查找名字中第一个字符不是 A、B 或 C 的记录:

SELECT *
FROM table_name
WHERE column_name LIKE '[^ABC]%';

在使用通配符进行过滤时,需要注意以下几点:

1. 通配符搜索一般比其他搜索方式(如精确匹配)要慢,因为数据库需要对更多的可能性进行匹配。

2. 在使用通配符时,尽量将通配符放在查询条件的末尾,以减少数据库需要搜索的范围,提高查询性能。

3. 注意通配符的转义,如果查询的字符串中本身包含通配符字符,可能需要进行转义处理,以确保通配符被正确解释为通配符而不是普通字符。不同的数据库管理系统有不同的转义方法,一般可以使用转义字符(如反斜杠“\”)或者特定的函数来进行转义。

练习题:

1.编写SQL语句,从Products表中检索产品名称(prod_name)和描述(prod_desc)​,仅返回描述中包含toy一词的产品。

2.编写SQL语句,从Products表中检索产品名称(prod_name)和描述(prod_desc)​,仅返回描述中未出现toy一词的产品。这次,按产品名称对结果进行排序。

3.编写SQL语句,从Products表中检索产品名称(prod_name)和描述(prod_desc)​,仅返回描述中同时出现toy和carrots的产品。有好几种方法可以执行此操作,但对于这个挑战题,请使用AND和两个LIKE比较。

4.编写SQL语句,从Products表中检索产品名称(prod_name)和描述(prod_desc)​,仅返回在描述中以先后顺序同时出现toy和carrots的产品。提示:只需要用带有三个%符号的LIKE即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值