多表连接查询(两种规范 SQL92和SQL99)
SQL92规范:
等值连接,非等值连接,外连接,广义笛卡儿积连接
多个表都放在from后,,连接条件放在where后,条件要求两列值相等,则为等值连接,否则为非等值连接,没有条件的话为广义笛卡儿积连接
多表查询过程可以理解为嵌套的循环,判断两个表的两列是否满足连接条件
如果需要对记录进行过滤,则将过滤条件和连接条件用and连接
外连接就是在外连接符所在的表中增加一个万能行,这行记录的所有数据均为null,该行可以和另外表中不满足条件的记录进行匹配
SQL99规范:
交叉连接:效果就是笛卡儿积连接,,,,cross join t_table t;
自然连接:natural join t_table t;以同名列名作为连接,,如果没有同名列名,效果同交叉连接
using句子连接:join Table using(列名)显示指定使用哪些同名列作为连接
on语句来指定连接条件
左右全外连接:right/left/full join
子查询:在查询语句中嵌套另一个查询
可以出现的位置:from 后面,当成数据表
where 后面作为过滤条件的值
使用子查询要注意:子查询要用括号括起来
子查询作为数据表时,可以为子查询起别名,尤其作为前缀来限定
集合运算,,,,,