Oracle条件查询

我们在使用SELECT (column_1,column_2,...,column_n) FROM <表名> 或者 SELECT * FROM <表名>的时候可以查询到表的一个或者多个甚至是全部列的数据。

但是呢,在一些情况下,我们并不希望获得所有数据,而是根据条件筛选选择性地留下指定条件的数据,例如,查询工资在5000元以上的员工数据。在一张表有数百万条数据的情况下,查询出所有的数据不仅仅要浪费时间,还要耗费内存。

SELECT语句可以通过WHERE条件来设定查询条件,查询结果是满足查询条件的数据。例如,要指定条件“工资在5000元或以上的员工”,写成WHERE条件就是SELECT * FROM employees WHERE salary >= 5000;。

其中,WHERE关键字后面的salary >= 5000就是条件。salary是列名,该列存储了员工的工资,因此,salary >= 5000就筛选出了指定条件的数据:

按条件查询employees:

SELECT * FROM employees WHERE salary >= 5000;

由此可见,条件查询的基本语法就是:

SELECT * FROM <表名> WHERE <条件表达式>

条件表达式可以用<条件1> AND <条件2>表达满足条件1并且满足条件2。

例如,符合条件“工资在5000元或以上”,并且还符合条件“JOB_ID为SA_MAN”,把这两个条件写出来:

条件1:根据salary列的数据判断:salary >= 5000;

条件2:根据JOB_ID列的数据判断:JOB_ID = 'SA_MAN',注意JOB_ID列存储的是字符串,需要用单引号括起来。

就可以写出WHERE条件:salary >= 5000 AND JOB_ID = 'SA_MAN':

按AND条件查询employees:

SELECT * FROM employees

WHERE salary >= 5000 AND JOB_ID = 'SA_MAN';

 

第二种条件是<条件1> OR <条件2>,表示满足条件1或者满足条件2。例如,把上述AND查询的两个条件改为OR,查询结果就是“工资在5000元或以上”或者“男生”,满足任意之一的条件即选出该数据:

按OR条件查询employees:

SELECT * FROM employees

WHERE salary >= 5000 OR JOB_ID = 'SA_MAN';

很显然OR条件要比AND条件宽松,返回的符合条件的数据也更多。

第三种条件是NOT <条件>,表示“不符合该条件”的数据。例如,写一个“名字不是King”这个条件,可以先写出“名字是King”:last_name = ‘King’,再加上NOT:last_name = ‘King’:

按NOT条件查询employees:

SELECT * FROM employees WHERE NOT last_name = ‘King’;

上述NOT条件NOT last_name = ‘King’其实等价于last_name <> ‘King’,因此,NOT查询不是很常用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值