常用操作
1.查看创建表参数
提取完整的DDL:
SELECT DBMS_METADATA.GET_DDL('TABLE','table_name') FROM DUAL;
2.指定返回记录数
select XXX from XXX where rownum<n
3.查询指定列的所有值且每个值只显示单条记录:
select 需要查询重复数据的列名
from 表名
group by 需要查询重复数据的列名
4.oracle中的交集、差集、并集
- INTERSECT
- MINUS
- UNION / UNION ALL:union重复内容取唯一,union all没有过滤重复内容
组函数
组函数:即聚合函数,对一组值执行计算,并返回单个值(COUNT除外)。
- 聚合函数忽略空值。
- 聚合函数可以用于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不能以任何表的名称作为前缀。
-
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需要有别名:
-
rownum对于小于某值的查询条件
- 可以直接用
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/
来源:oschina
链接:https://my.oschina.net/u/4269669/blog/4303562