Oracle条件查询

-------------------------------------------------Oracle条件查询-------------------------------------------------

. 限定查询

在查询绝大多数都会有条件的限制

语法:select *|列名 from表名 where 条件

例如:查询工资大于1500的所有雇员

1.  非空和空的限制

Ø  示例:查询每月能得到奖金的雇员

分析:只要字段中存在内容表示不为空,如果不存在内容就是null,

语法:列名 IS NOT NULL

为空  列名 IS NULL

Ø  范例:查询工资大于1500并且有奖金领取的雇员

分析:多个查询条件同时满足之间使用‘AND’

Ø  范例:查询工资大于1500或者有奖金的雇员

分析:多个查询条件或满足,条件之间使用“OR”

Ø  范例:查询工资不大于1500和没有奖金的人

语法:NOT(查询条件)

范例:基本工资大于1500但是小于3000的全部雇员

分析:sal>1500, sal<3000

Between and等于 sal > =1500 and sal <= 3000

范例:查询1981-1-1到1981-12-31号入职的雇员

分析:between and 不仅可以使用在数值之间,也可以用在日期的区间

范例:查询雇员名字叫smith的雇员

在oracle中的查询条件中查询条件的值是区分大小写的

范例:查询雇员编号是7369,7499,7521的雇员编号的具体信息

如果使用之前的做法可以使用OR关键字

实际上,此时指定了查询范围,那么sql可以使用IN关键字

语法: 列名 IN (值1,值2,....)

      列名 NOT IN (值1, 值2,...)

其中的值不仅可以是数值类型也可以是字符串

在常用的站点中经常会有模糊查询,即:输入一个关键字,把符合的内容全部的查询出来,在sql中使用LIKE语句完成。

在LIKE中主要使用以下两种通配符

“%”:可以匹配任意长度的内容

“_”:可以匹配一个长度的内容

范例:查询出所有雇员姓名中第二个字符包含“M”的雇员

在LIKE中如果没有关键字表示查询全部

查询名字中带有“M”的雇员

在oracle中不等号的用法可以有两种形式“<>”和“!=”

范例:查询雇员编号不是7369的雇员信息

 代码示例:

select * from emp where sal>1500;--按指定的条件查询

select * from emp where comm isnotnull;--查询条件不是空,数值0不算空

select * from emp where comm isnull;--查询条件是空

select * from emp where sal>1500and comm isnotnull;--查询多个条件都满足用and连接

select * from emp where sal>1500or comm isnotnull;--查询多个条件满足其中一个条件用or连接

select * from emp where sal<=1500and comm isnotnull;

select * from emp wherenot(sal>1500and comm isnull);--not()关键字代表查询不满足括号内的条件

select * from emp where sal>1500and sal<3000;--在指定范围内部查询,不包含边界

select * from emp where sal between1500and3000;--在指定范围内查询,包含边界

select * from emp where hiredate between to_date('1981-1-1','yyyy-MM-dd')

                                     and to_date('1981-12-31','yyyy-MM-dd');--查询指定日期内的数据

select * from emp where ename='SMITH';--sql的语句是不区分大小写的,但是表示的值是区分大小写的

select * from emp where empno=7369or empno=7499or empno=7521;

select * from emp where empno in(7369,7499,7521); --in()关键字,代表查询条件为括号里面的数值

select * from emp where empno notin(7369,7499,7521);--not in()查询条件不是括号内的数值

 

--like关键字代表模糊查询,_可以代表一个字符,%可以代表任意长度,这个句子代表查询名字中第二个字符为M的数据

select * from emp where ename like'_M%';

select * from emp where ename like'%M__'--查询倒数第二个字符为M的数据;

select * from emp where ename like'%M%';--查询字符中含有M的数值

select * from emp where ename like'%%';--全匹配

--  !=<>都是代表不等于

select * from emp where empno != 7369;

select * from emp where empno <>7369;

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值