筛选数据,直接加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]; 一定在最后