SELECT语句的过滤条件

1、WHERE

SELECT prod_name,prod_price
FROM Products
WHERE prod_price=3.19;
ORDER BY prod_price;
WHERE prod_price IS NULL--返回没有价格的产品


注意:通过过滤或非过滤时,不会返回结果为NULL值的行,因为未知有特殊的含义,数据库不知道他们是否匹配。

过滤数据时,一定要验证被过滤列中含有NULL的行确实出现在返回的数据中。


2、AND /OR /IN /NOT

WHERE vend_id='dll01' AND prod_price<=4;
ORDER BY prod_price;

WHERE子句可以包含任何数目的AND和OR操作符,允许两者结合一进行复杂、高级的过滤,AND操作符的优先级高于OR,可使用圆括号对操作符进行明确分组。


WHERE vend_id IN ('dll01','brs01');--IN完成与OR相类似的功能

在很多合法的选项时,IN的语法更清楚、直观;与其他AND和OR组合使用IN,求值顺序更容易管理;IN一般比一组OR执行的更快;IN的最大优点是可以包含其他的SELECT语句,能更动态地建立WHERE语句。


SELECT prod_name
FROM Products
WHERE NOT vend_id='dll01'
ORDER BY prod_name;

在复杂的子句中,NOT非常有用,例如在与IN操作符联合使用时,NOT可以非常简单地找出与条件列表不匹配的行。




3、通配符

通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜素。


百分号%通配符:表示任何字符出现任意次数,代表搜素模式中给定位置的0、1或多个字符,但不含匹配为NULL的行。

SELECT prod_id,prod_name
FROM Products
WHERE prod_name LIKE '%Fis%h%';


下划线_通配符:用途与%相同,但只能匹配单个字符。

WHERE prod_name LIKE '_inch teedy bear';



方括号[]通配符:用来指定一个字符集,它必须匹配指定位置(通配符位置)的一个字符。

SELECT cust_contact
FROM Customers
WHERE cust_contact LIKE '[JM]%';--匹配所有字符以J或M起头的联系人,若相反,可表示为'[^JM]%'

使用通配符的技巧:
通配符搜素一般比前面讨论的其他搜素要耗费更长的处理条件
a.不要过度使用通配符
b.尽量不要把他们用在搜素模式的开始处(这样最慢)
c.仔细注意通配符的位置(否则不会返回想要的数据)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值