sql高级查询
子查詢:
????? 是嵌套在select ,insert ,update ,delete語句或者其他的子查詢中的查詢語句。
? 一、一般的使用方式:
??? select * from 表1 where 列 運算符 (子查詢)
?? 注意:1.先執(zhí)行子查詢,在執(zhí)行外查詢(主查詢)
???????? 2.顯示結(jié)果中只有主查詢的內(nèi)容
???????? 3.子查詢與比較運算符連用時,子查詢只能返回單個值,不能是多個值
? 二、子查詢和連接查詢
????? 1.子查詢都可以代替連接查詢
????? 2.不是所有的連接查詢都可以代替子查詢
????? 3.子查詢用于insert ,delete,update時篩選條件
????? 4.連接查詢用于查看多個表的數(shù)據(jù)(結(jié)果集中包含多個表的信息的時候),
三、in或是not in
???? select * from 表名1 where 列 in(子查詢)子查詢可以返回某一列中的多個值,不能是多列
四、exists (子查詢)
???? select * from 表名1 where exists(子查詢) 子查詢有數(shù)據(jù)行的話返回true,否則返回false,一般都可以用in代替
????? 是嵌套在select ,insert ,update ,delete語句或者其他的子查詢中的查詢語句。
? 一、一般的使用方式:
??? select * from 表1 where 列 運算符 (子查詢)
?? 注意:1.先執(zhí)行子查詢,在執(zhí)行外查詢(主查詢)
???????? 2.顯示結(jié)果中只有主查詢的內(nèi)容
???????? 3.子查詢與比較運算符連用時,子查詢只能返回單個值,不能是多個值
? 二、子查詢和連接查詢
????? 1.子查詢都可以代替連接查詢
????? 2.不是所有的連接查詢都可以代替子查詢
????? 3.子查詢用于insert ,delete,update時篩選條件
????? 4.連接查詢用于查看多個表的數(shù)據(jù)(結(jié)果集中包含多個表的信息的時候),
三、in或是not in
???? select * from 表名1 where 列 in(子查詢)子查詢可以返回某一列中的多個值,不能是多列
四、exists (子查詢)
???? select * from 表名1 where exists(子查詢) 子查詢有數(shù)據(jù)行的話返回true,否則返回false,一般都可以用in代替
總結(jié)
- 上一篇: office办公笔记本推荐?
- 下一篇: sql事务、视图和索引