参考笔记一,P18.3/4、P19.5。
是虚拟字段,不真实存储,在返回结果集时生成,宏观作用类似序号。在每次查询时,从开始给结果集编号。常与、连用。
在与、连用时,由于是在查询记录时逐个生成,并迭代。因此,若的判断在第1行记录时就不满足,则无法返回记录,即未迭代,始终为,最终结果集中无任何记录,与连用时同理。
注意:所有SQL语句的执行顺序都是:。
由于是伴随生成,故与连用时,会导致混乱。因此,通常是多层嵌套,先进行排序,再使用进行筛选。(见示例)
扩展:在Oracle中,常言的查询其实是在编号后,使用进行判断,从而获取前条记录的查询方法。(见示例)
1:写法一
讯享网
前2层仅对结果集进行一次排序,不做筛选,在第3层时,才进行筛选。是的别名,由于属于第2层的结果集,非,故已固定,因此可以直接使用筛选出第名。
2:写法二
讯享网
在第2层时就进行结果集筛选,初始为,满足,则返回记录,同时迭代,如此反复直到条件不满足,这样就查询出前10条记录(工资最高的前10名员工)。此时固定,别名是,第3层可以直接使用筛选出第名。
补充说明:
两种写法在第1层时,都得到根据工资降序排序后的所有员工信息。
写法二较写法一,效率高很多。
参考笔记一,P23.18。

这两个伪列皆基于\(color{green}{序列}\),我暂未对序列的相关理论进行整理,大家可以查阅这篇博文《Oracle数据库序列》(转发)。
“序列”是一种按照一定规则自动增加或减少数字的数据库对象,主要用于主键(新增时填充主键)。创建示例:
是序列名;是递增值,默认值为;是初始值;表示不循环;表示进行缓存,缓存大小为。
是序列的下一个值,是序列的当前值。
使用位置:
- 子句中,不包括子查询的子句;
- insert 语句的子句或子句中;
- update 语句的子句中。
不能使用位置:
- 包含、、或的视图SQL语句的子句中;
- select、update、delete的子查询中;
- 包含的、语句中。
操作,
讯享网
必须先获取,才能使用。
掌握伪列,我建议:理解、自测。
本文持续更新中。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/147615.html