-
外连接: 核心:通过外连接,把对于连接条件不成立的记录,仍然包含在最后的结果中,分为:
(1)左外连接:当连接条件不成立的时候,等号左边的表仍然被包含 , 主表在左侧,字段全显示,副表null补充对齐。+号在右侧(副表)
(2)右外连接:当连接条件不成立的时候,等号右边的表仍然被包含 , 主表在右侧,字段全显示,副表null补充对齐。+号在左侧(副表)
例如: 按部门统计员工人数,要求显示:部门号,部门名称,人数
select d.deptno 部门号,d.dname 部门名称,count(e.empno) 人数 from emp e,dept d where e.deptno(+)=d.deptno group by d.deptno,d.dname;
(右外连接在等号左边添加“(+)”,左外连接是在等号右边添加“(+)”)
查看全部 -
笛卡尔集:
为了避免笛卡尔集,可以在where加入有效的连接条件 在实际运行环境下,应避免使用笛卡儿积全集 连接条件个数>=n-1 (n为参加笛卡尔集运算的表的总个数)
查看全部 -
1.ttitle col 15 '我的报表' col 35 sql.pno
(使用ttitle命令设置报表的名称,col 15 表示空15个列,'我的报表'表示显示‘我的报表’,col 35 表示空35个列,sql.pno表示报表的页码)
2.col deptno heading 部门号
(使用col命令可以设置列的别名,将deptno heading '标题' 设置为别名'部门号')
3.break on deptno skip 1
(相同的部门号只显示一次,不同的部门号之间隔1行)
get:读取指定路径下的sql语句 @:执行指定路径下的sql语句 /:执行上一次SQL语句
查看全部 -
分组函数的嵌套
示例:求部门平均工资的最大值
1、通过AVG函数求出每个部门的平均工资
select avg(sal) from emp group by deptno;
2、嵌套MAX函数求出部门平均工资的最大值
select max(avg(sal)) from emp group by deptno;
查看全部 -
在分组查询中使用order by子句
示例:求每个部门的平均工资,要求显示:部门号,部门的平均工资,并按照工资升序排列
可以按照:列、别名、表达式、序号进行排序
select deptno,avg(sal) from emp group by deptno order by avg(sal);
select deptno,avg(sal) 平均工资 from emp group by deptno order by 平均工资;
select deptno,avg(sal) 平均工资 from emp group by deptno order by 2;(平均工资在SELECT 语句中的第二列);
sqlplus的另一个小技能: a命令:-append;a命令表示在上一条命令后面追加语句,a命令后必须跟两个或两个以上的空格,若只打一个空格则追加语句紧跟上一条语句最后一个单词拼接
查看全部 -
qqq查看全部
举报