子查询
1)、子查询是指出现在其他SQL语句内的SELECT子句
2)、子查询指嵌套在查询内部M且必须始终出现在圆括号内
3)、子查询可以包含多个关键字或条件,子查询的外围查询可以是: SELECT,INSERT,UPDATE,SET或DO,
4)、子查询返回值: 子查询可以返回标量,一行,一列或子查询
运算符
1)、比较运算符: =,>,<,<=,>=,<=>,<>,!=
NOT IN和IN关键字
EXISTS和NOT EXISTS关键字:EXISTS关键字检测查询是否有记录
声明: 1)、子查询必须放置在一对圆括号中,外面的一层查询通常称为父查询,里面的一层查询通常称为子查询
2)、表连接可以使用子查询替换,但反过来却不一定,有的子查询不能用表连接来替换.子查询比较灵活、方便、形式多样、适合于作为查询的筛选条件,而表连接更适合于查看多表的数据.
AS 别名
运算符关键字 | ANY | SOME | ALL |
---|---|---|---|
>=,> | 最小值 | 最小值 | 最大值 |
<,<= | 最大值 | 最大值 | 最小值 |
= | 任意值 | 任意值 | |
<>,!= | 任意值 |
[NOT] IN=ANY运算符与IN等效
!=ALL或<>ALL运算符与NOT IN等效
[NOT] EXISTS: 如果子查询返回任何行,EXISTS将返回TRUE,否则为FALSE
连接:MySQL在SELECT语句,多表更新,多表删除语句支持JOIN操作
语法结构:
tbl_reference {[INNER|CROSS] JOIN|{LEFT|RIGHT} [OUTER] JOIN} tbl_rederence ON conditional_expr
数据表参照(table_reference)
tbl_name [[AS] alias] | tbl_subquery [AS] alias 1)数据表可以使用tbl_name AS alias_name或tbl_name alias_name赋予别名 2)tbl_subquery可以作为子查询使用在FROM子句中,这样的子查询必须为其赋予别名
连接类型
INNER JOIN,内连接:在MySQL中,JOIN,CROSS JOIN和INNER JOIN是等价的
LEFT [OUTER] JOIN 左外连接
RIGHT [OUTER] JOIN 右外连接
1)内连接: 显示左表及右表符合连接条件的记录
2)左外连接: 显示左表的全部记录及右表符合连接条件的记录
3)右外连接: 显示右表的全部记录及左表符合连接条件的记录