MYSQL学习笔记----子查询
2016-10-02 11:23
441 查看
1、子查询
(1)子查询是指出现在其他的SQL语句内的SELECT字句
例如:
SELECT * FROM t1 WHERE col1 = (SELECT col2 GROM t2);
■解说:
--- SELECT * FROM t1 表示外部查询(Outer statement)
--- SELECT col2 GROM t2 表示内部查询,也称为子查询(subquery)
!注意:
---子查询指嵌套在查询内部,并且必须始终出现在圆括号内
---子查询可以包含多个关键字或条件
如:DISTINCT,GROUP BY ,ORDER BY ,LIMIT ,函数等。
---子查询的外层查询可以是:SELECT ,INSERT,UPDATE,SET 或DO.
---子查询可以返回标量,一行,一列或子查询。
(2)使用比较运算符的子查询
---使用比较运算符的子查询
= ,>,<,>=,<=,<>,!=,<=>
---语法结构
SELECT * FROM t1 WHERE col1 > (SELECT col2 GROM t2);
(3)使用ANY,SOME,或ALL修饰的比较运算符
---语法结构
SELECT * FROM t1 WHERE col1 =ANY (SELECT col2 GROM t2);
■解说:
ANY ,SOME,ALL关键字
----------------------------------------------
ANY SOME ALL
----------------------------------------------
>,>= 最小值 最小值 最大值
----------------------------------------------
<,<= 最大值 最大值 最小值
----------------------------------------------
= 任意值 任意值
----------------------------------------------
<>,!=, 任意值
----------------------------------------------
(4)使用[NOT] IN的子查询
---语法结构
SELECT * FROM t1 WHERE col1 ANY (SELECT col2 GROM t2);
!注意:
=ANY运算符与IN等效
!= ALL 或<>运算符与NOT IN等效
(5)使用[NOT]EXISTS的子查询
---如果子查询返回任意行,EXISTS将返回TRUE;否则为FALSE
(6)将查询结构写入数据表
---语法结构
INSERT [INTO] table_name [(col_nmae,..)]
SELECT...
(1)子查询是指出现在其他的SQL语句内的SELECT字句
例如:
SELECT * FROM t1 WHERE col1 = (SELECT col2 GROM t2);
■解说:
--- SELECT * FROM t1 表示外部查询(Outer statement)
--- SELECT col2 GROM t2 表示内部查询,也称为子查询(subquery)
!注意:
---子查询指嵌套在查询内部,并且必须始终出现在圆括号内
---子查询可以包含多个关键字或条件
如:DISTINCT,GROUP BY ,ORDER BY ,LIMIT ,函数等。
---子查询的外层查询可以是:SELECT ,INSERT,UPDATE,SET 或DO.
---子查询可以返回标量,一行,一列或子查询。
(2)使用比较运算符的子查询
---使用比较运算符的子查询
= ,>,<,>=,<=,<>,!=,<=>
---语法结构
SELECT * FROM t1 WHERE col1 > (SELECT col2 GROM t2);
(3)使用ANY,SOME,或ALL修饰的比较运算符
---语法结构
SELECT * FROM t1 WHERE col1 =ANY (SELECT col2 GROM t2);
■解说:
ANY ,SOME,ALL关键字
----------------------------------------------
ANY SOME ALL
----------------------------------------------
>,>= 最小值 最小值 最大值
----------------------------------------------
<,<= 最大值 最大值 最小值
----------------------------------------------
= 任意值 任意值
----------------------------------------------
<>,!=, 任意值
----------------------------------------------
(4)使用[NOT] IN的子查询
---语法结构
SELECT * FROM t1 WHERE col1 ANY (SELECT col2 GROM t2);
!注意:
=ANY运算符与IN等效
!= ALL 或<>运算符与NOT IN等效
(5)使用[NOT]EXISTS的子查询
---如果子查询返回任意行,EXISTS将返回TRUE;否则为FALSE
(6)将查询结构写入数据表
---语法结构
INSERT [INTO] table_name [(col_nmae,..)]
SELECT...
相关文章推荐
- 45.笔记 MySQL学习——FROM子句里的子查询
- MySQL学习笔记16:子查询
- MySQL学习笔记——多表连接和子查询
- MySQL学习笔记 第七讲:子查询
- mysql 数据库学习笔记 3 外键 和 select 子查询
- MySQL学习笔记16:子查询
- MySQL学习笔记16:子查询
- 40.笔记 MySQL学习——带关系比较运算符的子查询
- MySQL学习笔记(一)――关于MySQL 5
- MYSQL学习笔记(1)
- Mysql学习笔记
- mysql学习笔记(二) ----维护
- MYSQL学习笔记(5)配置:使用选项文件
- Linux下C语言学习笔记—操作MySQL
- MySQL学习笔记:InnoDB和MyISAM的差别
- mysql学习笔记
- MySQL学习笔记(较全面的)
- mysql学习笔记
- MYSQL的select 学习笔记
- MySQL学习笔记