经常使用操做
1.查看建立表参数express
提取完整的DDL:oracle
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL;
2.指定返回记录数函数
select XXX from XXX where rownum<n
3.查询指定列的全部值且每一个值只显示单条记录:spa
select 须要查询重复数据的列名
from 表名
group by 须要查询重复数据的列名
4.oracle中的交集、差集、并集.net
- INTERSECT
- MINUS
- UNION / UNION ALL:union重复内容取惟一,union all没有过滤重复内容
组函数
组函数:即聚合函数,对一组值执行计算,并返回单个值(COUNT除外)。code
- 聚合函数忽略空值。
- 聚合函数能够用于select、having子句,不能够用于where语句,由于where是对逐条记录进行筛选。
- 经常使用聚合函数:
- AVG:返回平均值,空值被忽略
- COUNT:返回指定组中记录的数量
- MAX
- MIN
- SUM:只能用于数字列,空值被忽略。
- COUNT_BIG:返回指定组中的项目数量,与COUNT函数不一样的是COUNT_BIG返回bigint值,而COUNT返回的是int值。
- GROUPING:产生一个附加的列,当用CUBE或ROLLUP运算符添加行时,输出值为1.当所添加的行不是由CUBE或ROLLUP产生时,输出值为0.
- CHECKSUM:返回在表的行上或在表达式列表上计算的校验值,用于生成哈希索引
- STDEV:返回给定表达式中全部值的统计标准误差。
- VAR:返回统计方差
oracle的rownum用法
Rownum:是oracle自动分配给查询返回行的编号,从1开始。这个字段能够用于限制返回的总行数,可是rownum不能以任何表的名称做为前缀。blog
-
rownum对于等于某值的查询条件:排序
- rownum都是从1开始,可是1以上的天然数在rownum作等于判断是时认为都是false条件
- 没法查询到
where rownum>n (n>1)
的记录
- 能够查到到
where rownum=1
的记录
-
rownum对于大于某值的查询条件索引
- 须要使用子查询且rownum须要有别名:
select * from(select rownum no ,id from student) where no>2
-
rownum对于小于某值的查询条件get
- 能够直接用
where rownum<n
查询
- 区间查询则须要用子查询。
-
rownum和排序
- rownum是系统按照记录插入时的顺序给记录排的号。只能用子查询实现排序。
报错1:[Err] ORA-00979: not a GROUP BY expression
Oracle中 group by 规则:出如今select列表中的字段,若是没有在组函数出现,那么必须出如今group by 子句中。(即select列表中的字段不能够单独出现,必须在group语句或者组函数中。)
参考
参考1:http://blog.itpub.net/17203031/viewspace-688011/