-
group by 后不可以使用子查询
查看全部 -
select语句后面的子查询必须是一个单行子查询
【语句只返回一条记录就是单行子查询,返回多条记录就是多行子查询】
查看全部 -
子查询注意点
1.可以使用位置:where, select, having, from
2.不可以使用位置:group by
3.重点--from后面的子查询
4.主查询和子查询可以不是同一张表
5.一般不在子查询中使用排序,但Top-N分析问题例外,它必须对子查询排序
6.一般先执行子查询,再执行主查询,但相关子查询例外
7.单行子查询只能使用单行操作符,多行子查询只能使用多行操作符
8.子查询中null值问题
查看全部 -
层次查询
某些情况下,可以替代自连接
本质上,是一个单表查询
自连接:
select level【伪列,表示树的深度】, empno, ename, sal, mgr
from emp
connect by prior empno=mgr【前者的员工号等于后者的老板号,在树中即上一层的员工号等于当前层的老板号】
start with mgr is null;【从没有老板的那个员工即树的根节点开始遍历整棵树】
//相当于 start with empno=某个员工号【遍历以该员工为根节点的树】;
order by 1;
查看全部 -
自连接
涵义:通过别名,将同一张表视为多张表
查看全部 -
外连接
涵义:通过外连接,把对于连接条件不成立的记录,仍然包含在最后的结果中。
外连接写法与说法相反:
右外连接【在等号的左边写个(+)】
select d.deptno 部门号, d.dname 部门名称, count(e.empno) 人数 from emp e, dept d where e.deptno(+)=d.deptno group by d.deptno,d.dname;
左外连接
select d.deptno 部门号, d.dname 部门名称, count(e.empno) 人数 from emp e, dept d where e.deptno=d.deptno(+) group by d.deptno,d.dname;
查看全部 -
between and
必须小值在前,大值在后,若颠倒会出现未选定行错误。
查看全部 -
等值连接
多表中的同样属性等值,以此为连接点
查看全部 -
给表起别名
from 表名 别名(表名+空格+别名);
查看全部 -
多表查询
等值连接
不等值连接
外连接
自连接
层次查询
查看全部 -
读取执行电脑文件
get 磁盘名称:\...\... .sql
@磁盘名称:\...\... .sql
查看全部 -
报表
ttile col 15 ‘我的报表’col 35 sql.pno【空15列写标题,空35列显示报表页码】
col xxx1 heading xxx2;【为第xxx1列设置别名xxx2】
查看全部 -
在select列表中所有未包含在组函数中的列都应该包含在group by子句中
查看全部 -
分组函数会自动滤掉空值,可使用nvl函数屏蔽分组函数的滤空功能,nvl(arg1,arg2),单第一个参数为空则返回第二个自参数的值。
查看全部 -
avg函数与sum函数
min函数与max函数
count函数,可加distinct关键字
查看全部
举报