关于oracle数据库(8)查询2

时间:2023-03-09 04:02:31
关于oracle数据库(8)查询2

筛选数据,直接加where条件,并且and,或者or

使用rownum获取前N条数据

select * from 表名 where rownum <= 数字;

如:获取前5条数据  select * from emp where rownum <=5;

错误示例☞select * from emp where rownum=2;  (查询后给一个指定的序号)

如:select rownum,e.* from emp e where sal>5000;

排序  order by  列默认升序asc  降序desc

select * from 表名 order by 列名 排序方式

如:select * from emp order by sal desc

如:select * from emp order by sal asc

先按工资排序,如果工资相同的人就按奖金排序

select * from emp order by salary,comm desc

having 分组后再筛选  //把分组结果得到后再筛选

如:select job,count(job) from emp group by job having count(*)>2;

模糊查询  比如:淘宝搜索

只要有s字母的都出来,前面任意,后面也任意

select ename from emp where ename like '%s%'

前面任意,最后一个字母为s

select ename from emp where ename like '%s'

一个_代表一个字符,第二个字符为s,%代表任意字符

select ename from emp where ename like '_s%'

查询有奖金的人

select * from emp where comm is not null;

查询没有奖金的人

select * from emp where comm is null;

常量列

select ename, '财院' 学校名称 from 表名;

select ename ,'财院' as 学校名称 from 表名;

小结:基本语法

select [distinct] * | 指定列名

from 表名

[where 条件]   分组前筛选

[group by 分组字段]

[having 条件]   分组后筛选

[order by 排序字段 asc | desc];  一定在最后