SQL基本操作之过滤数据

SQL基本操作之过滤数据

WHERE子句操作符

我们一般不会想获得所有行的列值,而是选取我们所需要的
SQL提供了WHERE子句实现过滤数据的功能

如在Customers表中提取用户名为Fun4All的列(单引号代表字符串):
SELECT * FROM Customers WHERE cust_name = 'Fun4All';

WHERE子句操作符见下表:

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
!<不小于
>大于
>=大于等于
!>不大于
BETWEEN AND在指定的两个值之间
IS NULL为NULL值

注意:不同的DBMS的操作符可能有差异,详见官方文档。

几个栗子:

  1. 检查单个值:SELECT * FROM Customers WHERE cust_id > 1000000003;
  2. 不匹配检查:SELECT * FROM Customers WHERE cust_id != 1000000003;
  3. 范围值检查:SELECT * FROM Customers WHERE cust_id BETWEEN 1000000001 AND 1000000004;

注意:
1.进行不匹配检查时,NULL也不会出现在不匹配的列中,因为未知具有特殊的含义,数据库不知道他们是否匹配。

2.同时使用WHERE子句和ORDER BY子句时,ORDER BY子句应在WHERE子句之后


高级数据过滤
AND操作符

即逻辑关系“且”。

栗子:选出用户表中用户名不为1000000000,1000000003,10000000004的列值:

SELECT * 
FROM Customers 
WHERE cust_id  != 1000000003 AND cust_id != 1000000000 AND cust_id != 1000000004;

OR操作符

即逻辑关系“非”

栗子:用户id大于1000000004或小于1000000002的所有列值

SELECT * FROM Customers WHERE cust_id < 1000000002 OR cust_id > 1000000004;

注意:SQL中AND操作符的优先级高于OR操作符,但可以通过括号修改(使用这些操作符时应尽量使用括号以消除歧义)


In操作符

用于指定条件范围,功能与OR相当

栗子:选取居住在曼西或者芝加哥的用户 保存为草稿

SELECT * FROM Customers WHERE cust_city In ('Muncie', 'Chicago');

In操作符与OR操作符的区别:

  1. 更清楚直观
  2. 容易管理
  3. 更快
  4. 可以包含其他SELECT子句

NOT操作符

即逻辑关系中的、“非”。

栗子:选取不居住在芝加哥的用户:

SELECT * FROM Customers WHERE NOT cust_city = 'Chicago';

在复杂的子句中,NOT操作符非常有用。

注意:MariaDB仅支持使用NOT否定IN、BETWEEN、EXISTS子句,大多数DBMS支持使用NOT否定任何条件

参考:《SQL必知必会》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值