1、SQL语言分类
【1】数据查询语言(select)
【2】数据操作语言(data manipulation language DML)用于改变数据库数据。INSERT 、UPDATE、 DELETE
【3】事物控制语言(transaction control language TCL)用于维护数据一致性。COMMIT、ROLLBACK、SAVEPOINT
【4】数据定义语言(data definition language DDL)用于建立、修改、删除数据库对象CREATE、DROP、ALTER、TRUNCATE
【5】数据控制语言(data control language DCL)用于执行权限得授予和回收 GRANT、REVOKE
当使用dbms_output包时必须将环境变量serveroutput设置为ON。
set serveroutput on
调用存储过程 execute 或 call 命令
insert /*+APPEND+*/ into a select * from b;
/*+APPEND+*/ 表示直接装载方式,当装载大批数据时速度较快
执行ALL /FIRST 实现多表插入,与ALL的区别,FIRST在先前数据满足条件被插入表后,不再插入其他表
insert all/first
where a=1 then into aa
where a=2 then into bb
where b=3 then into cc
else into dd
select * from a;
--GROUP BY 中使用ROLLUP,可以生成统计数据及横向小计
select t.telno,t.callno,AVG(t.suessno) from aa t
GROUP BY ROLLUP (t.telno,t.callno);
TELNO CALLNO AVG(T.SUESSNO)
1 123 1000
1 342 1250
1 1443 2000
1 1416.66666666667
2 424 3000
2 4345 1470
2 5254 2500
2 2323.33333333333
3 12357 450
3 123213 12450
3 6450
3015
--GROUP BY 中使用CUBE,可以生成数据统计、横向小计、纵向小计
select t.telno,t.callno,AVG(t.suessno) from aa t
GROUP BY CUBE (t.telno,t.callno);
TELNO CALLNO AVG(T.SUESSNO)
3015
123 1000
342 1250
424 3000
1443 2000
4345 1470
5254 2500
12357 450
123213 12450
1 1416.66666666667
1 123 1000
1 342 1250
1 1443 2000
2 2323.33333333333
2 424 3000
2 4345 1470
2 5254 2500
3 6450
3 12357 450
3 123213 12450
--GROUP BY 中使用GROUPING SETS,即显示telno平均工资,也能显示callno平均工资
select t.telno,t.callno,AVG(t.suessno) from aa t
GROUP BY GROUPING SETS (t.telno,t.callno);
TELNO CALLNO AVG(T.SUESSNO)
1 1416.66666666667
2 2323.33333333333
3 6450
123 1000
123213 12450
12357 450
1443 2000
342 1250
424 3000
4345 1470
5254 2500
在使用(+)操作符执行外连接时,应注意以下事项:
1、(+)操作符只能出现在WHERE子句中,不能与OUTER JOIN 语法同时使用
2、当使用(+)操作符执行外连接时,如在WHERE子句包含多个条件,则必须在所有条件中都包含(+)
3、(+)操作符只适用于列,不能用在表达式上
4、(+)操作符不能与OR和IN操作符一起使用
5、(+)操作符只能用于实现左外连接和右外连接,不能实现完全外连接
WITH 的用法
对于多少使用相同子查询的复杂查询语句,通过WITH子句可以给予子查询指定一个名称,并且在一条语句中可以完成所有任务,避免使用临时表
WITH SUMMARY AS(
SELECT DNAME,SUM(SAL) AS DEPT_TOTAL FROM DMPT
GROUP BY DNAME)
SELECT DNAME,DEPT_TOTAL FROM SUMMARY WHERE DEPT_TOTAL>
(SELECT SUM(DEPT_TOTAL)*1/3 FROM SUMMARY);
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7711639/viewspace-426825/ ,如需转载,请注明出处,否则将追究法律责任。