frontpage做的社交网站,优秀设计网站点评,网页版游戏链接,三亚8名男女深夜被抓1. 子查询
子查询是指一个查询语句嵌套在另一个查询语句内部的查询.这个特性在MySQL4.1开始引入.
SQL中子查询的使用大大增强了SELECT查询的能力.因为很多时候查询需要从结果集中获取数据#xff0c;或者需要从同一个表中先计算得到一个数据结果#xff0c;然后与这个数据结…1. 子查询
子查询是指一个查询语句嵌套在另一个查询语句内部的查询.这个特性在MySQL4.1开始引入.
SQL中子查询的使用大大增强了SELECT查询的能力.因为很多时候查询需要从结果集中获取数据或者需要从同一个表中先计算得到一个数据结果然后与这个数据结果进行比较.
2. 子查询的基本使用
例 : 注 :
子查询在主查询之前一次执行完成.子查询的结果被主查询使用.子查询在包含在括号内.将子查询放在比较条件的右侧.单行操作符对应单行子查询多行操作符对应多行子查询.
3. 子查询的分类
(1). 方式1 :
我们可以按照子查询的结果返回一条还是多条记录分为单行子查询和多行子查询.
(2). 方式2 :
我们按照子查询是否被执行多次是否依赖于主查询将子查询分为相关子查询和不相关子查询.
子查询从数据表中查询到了数据结果如果这个数据结果只执行了一次然后这个数据作为主查询的条件执行则这样的子查询叫作不相关子查询.比如上述的图片.如果子查询需要执行多次即采用循环的方式先从外部查询开始每次都传入子查询进行查询再将结果反馈给外部这种嵌套的执行方式称为相关子查询.
4. 单行子查询
(1). 单行子查询的操作符 (2). 例 注 :
单行子查询只返回一条记录并作为主查询的条件进行比较.使用了单行比较操作符.不相关子查询数据结果仅执行一次.且查询结果不依赖于主查询.
(3). 子查询中的空值问题 注 :
子查询查询到的结果为null.由于单行子查询运算符遇到null运算的结果都为null.所以查询不到任何记录.
(4). 非法使用子查询
例 : 注 :
由于该子查询查到多行记录而主查询条件中使用单行比较操作符所以会报错.
5. 多行子查询
(1). 概念
也称为集合比较子查询子查询返回多行.使用多行比较操作符.
(2). 多行比较操作符
IN : 等于列表中的任意一个.
ANY : 需要和单行操作符一起使用和子查询返回的某一个值比较.
ALL : 需要和单行操作符一起使用和子查询返回的所有值进行比较.
SOME : 实际上是ANY的别名作用相同一般使用ANY.
(3). 例
(4). 空值问题 注 :
如果子查询返回的结果集中有null且在主查询的条件中使用多行比较操作符时也将返回null.所以查询不到任何记录.