Sql入门-----------子查询

来源:互联网 发布:java软件编程招聘 编辑:程序博客网 时间:2024/05/16 01:43

子查询又称嵌套查询,必须遵守的一下规则:

1、必须位于圆括号里。

2、除非主查询里有多个字段让子查询进行比较,否则子查询的select子句里只能有一个字段。

3、子查询里不能使用order by子句,但是可以使用group by实现order by的功能。

4、返回多条记录的子查询只能与多值操作符配合使用。

5、select 列表里不能引用任何blob、array、clob或nclob类型的值。

6、子查询不能直接被包围在函数里。

7、操作符between不能用于子查询,但子查询内部可以使用它。

一、子查询与select语句

select column [ , column ]from table1 [ , table2 ]where column operator( select column [ , column ] from table1 [ ,table2 ][ where ] );

二、子查询与insert语句

insert into table [ ( column1 [ , column2]) ]select [ * | column1 [ ,column2 ] ][ where value operator ]

三、子查询与update语句

update tableset column [ ,column ] =   ( select column [ ,column ]     from table    [ where ]    )

四、子查询与delete语句

 delete from table[ where operator [ value ]             ( select column                from table               [ where ]               )]

五、嵌套的子查询

子查询可以嵌套到另一个子查询里,最内层的子查询先被执行,然后在执行外层的子查询,直到主查询。

注:

(1)一个语句里能够嵌套的子查询的数量取决于具体的实现,请查看相应的文档。

(2)使用多个子查询可能会延长响应时间,还可能降低结果的准确性,因为代码里可能存在错误。

六、关联子查询

子查询里的表可以与主查询里的表相关联。

注:在关联子查询时,如果要在子查询中使用某个表,必须首先在主查询中引用这个表。

0 0