Oracle数据库基础03-限定返回行

1.限定行初步

使用where子句,可以限制查询满足条件的行,where 子句能够比较字段值、文字值、算术表达式或函数,内部由字段名、比较条件和比较值三个部分组成。

在where子句中字符串和日期必须包含在单引号中,数字常数不需要。尤其需要注意的是,虽然说SQL语句是大小写不敏感的,但是在使用where子句进行条件限定时,这个比较值是大小写敏感的。

例如:查询部门编号为30的员工姓名和工资:

select ename,sal from emp where deptno=30,

查询员工工作为的员工姓名和工资:

select ename,sal from emp where job='SALESMAN';

在where子句中,比较条件不仅有“=”,还包括“>”、“>=”、“<”、“<=”、“<>”、“!=”、“^=”,其中最好三个均可代表不等于。4

2.限定行进阶

  • BETWEEN.......AND.......条件

使用between条件可以查询显示上下限之间的行。例如希望查询出雇员表中薪水在1000~1800元之间的员工姓名和薪水。

可以使用下面的SQL语句:

select ename,sal from emp where sal between 1000 and 1800;

  • IN条件

IN条件也称为成员条件,用于查询出所选字段中符合指定的一组值中的一个。例如希望查询出部门编号是10或30的员工信息,可以使用的SQL语句如下:

select * from emp where deptno in(10,30);

同样的,IN(value1,value2,value3)本质上的是由Oracle转变成一组OR条件:a = value1 or a = value2 or a = value3,所以使用IN条件也没有得到性能的提高。

  • LIKE条件

LIKE条件查询通常也称为通配符查询,可以使用两个通配符来构造需要匹配的字符模板,其中“%”表示零个或多个字符,“_”表示一个字符,这里提到的字符既可以是文字也可以是数字。例如查询名字中含有‘A’的员工姓名:

select ename from emp where ename like '%A%';

查询姓名第二个字母是‘C’的员工姓名:

select ename from emp where ename like '_C%';

当查询或者匹配中含有通配符“%”、“_”的时候,可以使用ESCAPE选项,该选项可以指定换码符是什么,

例如:查询姓名含有“AD_”的员工姓名:

select ename from emp where ename like '%AD$_%' escape '$';

‘$’号后面的‘_’就不会被看成是通配符,因为escape指定了‘$’为转码符。

  • NULLL条件

NULL条件,包括IS NULL条件和IS NOT NULL条件。IS NULL条件用于判断空值,在=Oracle中,空值的含义为难以获得的、未指定的、未知的或者不适用的。这种学术的描述对软件开发人员意义不大,但判断空值时不可以使用“=”进行判断,因为NULL不能等于或不等于任何值。

例如查询没有上级领导的员工:

 

  • 逻辑条件

前面使用的都是单个的比较条件,有时候一个比较条件往往难以满足查询的需求,这时候可以使用逻辑条件将多个比较条件组合起来使用。SQL语言的三个逻辑运算符分别是AND、OR和NOT,其含义顾名思义,就是与、或和非。

例如:查询员工工资大于2000,小于3000元的员工信息:

 

  • 优先规则

优先规则定义表达式求值和计算的顺序,默认的优先顺序如下;

(1)算术运算。

(2)连字操作。

(3)比较操作。

(4)IS[NOT] NULL、LIKE、[NOT] IN。

(5)[NOT] BETWEEN。

(6)NOT 逻辑条件。

(7)AND逻辑条件。

(8)OR逻辑条件。

和Java语言一样,在编写SQL语句时,可以使用圆括号括住想要先计算的表达式来覆盖默认的优先顺序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值