oracle和mysql查询语句标准_Oracle数据库 sql条件查询语句与练习

本文详细介绍了SQL查询的基础知识,包括使用WHERE子句过滤行记录的方法、集合操作如Union、Intersect和Minus的运用,以及如何使用ORDER BY进行数据排序。通过实际案例,帮助读者掌握SQL查询的核心技能。

一、where 过滤行记录条件 ,条件有

a)、= 、 >、 =、 <=、 !=、 <>、 between and

b)、and 、or、 not、 union、 union all、 intersect 、minus

c)、null :is null、 is not null、 not is null

d)、like :模糊查询 % _ escape('单个字符')

f)、in 、 exists(难点) 及子查询m

二、集合操作

Union、Union All、Intersect、Minus

Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;

Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序 ;

Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序

三、排序

使用 ORDER BY 排序,排序不是真实改变存储结构的顺序,而是获取的集合的 顺序。

顺序 :asc(默认) desc

多字段: 在前面字段相等时,使用后面的字段排序

空排序: 降序为 desc,注意 null 为最后

----------------------------------------分割线------------------------------------------

练习:

1、限制查询数据

(1)查询EMP表显示工资超过2850的雇员姓名和工资。

select ename 姓名,sal 工资 from emp where sal>2850;

(2)查询EMP表显示工资不在1500~2850之间的所有雇员及工资。

select * from emp where sal not between 1500 and 2850;

(3)查询EMP表显示代码为7566的雇员姓名及所在部门代码。

select ename 姓名,deptno 部门编号 from emp where empno=7566;

(4)查询EMP表显示部门10和30中工资超过1500的雇员名及工资。

select ename 姓名,sal 薪资 from emp where deptno in(10,30) and sal>1500;

(5)查询EMP表显示第2个字符为"A"的所有雇员名其工资。

select ename,sal from emp where ename like '_A%';

(6)查询EMP表显示佣金非空的所有雇员名及其佣金。

select comm from emp where comm is not null;

2、排序数据

(1)查询EMP表显示所有雇员名、工资、雇佣日期,并以雇员名的升序进行排序。

select ename,sal,hiredate from emp order by ename;

(2)查询EMP表显示在1981年2月1日到1981年5月1日之间雇佣的雇员名、

岗位及雇佣日期,并以雇佣日期进行降序。

select ename, job, hiredate

from emp

where hiredate between to_date('1981-02-01', 'yyyy-mm-dd') and

to_date('1981-05-01', 'yyyy-mm-dd')

order by hiredate desc;

(3)查询 EMP 表显示获得补助的所有雇员名、工资及补助,并以工资升序和补助降序排序。

select ename,sal,comm from emp where comm is not null order by sal asc,comm desc;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值