1.子查询-------出现在其他SQL语句内的SELECT语句,嵌套在查询内部,始终出现在圆括号内
SET NAMES GBK;在客户端显示数据,但并不影响数据表中的记录(数据表中记录编码方式为utf8)
子查询可以包含多个关键字或条件如DISTINCT,GROUP BY,ORDER BY,LIMIT等
外层可以是SELECT,UPDATE,INSERT等
子查询返回值可以是标量,一行或一列结果。
分三类:
a.比较运算符:eg:SELECT AVG(goods_price) from tdb_goods;SELECT ROUND(AVG(),2 ) FROM...WHERE XX=(SELECT..FROM ...WHERE XXX=...),若子查询返回多个值,需要用ANY,SOME,ALL关键字。
b.[NOT] IN子查询
c.[NOT] EXISTS
INSERT ... SELECT:INSERT tablename(column_name) SELECT col_name FROM xxx;
CREAT...SELECT...
2.连接
INNER JOIN,
多表更新:UPDATE table_references SET col_name1..inner join xxx on...SET ....
a表+连接类型+b表+on+连接条件
连接类型:INNER JOIN(仅显示符合条件的记录) ,LEFT [OUTER]JOIN(左表全部和右表的符合条件) ,RIGHT[OUTER]JOIN(右表全部和左表符合条件记录).