子查询在SELECT、UPDATE、DELETE语句内部可以出现SELECT语句。内部SELECT语句结果作为外部语句查询条件。子查询可以分为单行子查询、多行子查询。
注意:
如果内部查询不返回任何记录,则外部的条件永远为假,外部查询也不返回任何结果。
在单行子查询中,外部查询可以使用=、>、<、<=、>=、<>等比较运算符。
内部查询返回的结果必须与外部查询条件中的字段匹配。
如果内部查询返回多行结果则出现错误。
ANY子查询 ANY放在比较运算符后面,表示“任意一个”的意思。
< ANY:比子查询结果中任意的值都要小。
ORACLE 中的伪列
在ORACLE表示用的过程中,实际上还有一些附加列,称为伪列。位列就像表中的列一样,但是在表中并不存在,伪列只能查询,不能进行修改,常用的伪列包括:ROWID、ROWNUM。
ROWID 返回表中每一行都有的一个物理地址。
ROWNUM 在查询的结果集中,ROWNUM为结果集中每一行标识一个行号。通过ROENUM伪列可以限制查询结果集中返回的行数。
可以利用ROWNUM进行分页查询