一
1)sql99语法:
select 查询列表
from表1 别名 [连接类型]
join
表2 别名
on 连接条件
[where 筛选条件]
[group by 分组]
[having 筛选条件]
[order by排序列表]
2)分类(链接类型的分类)
内连接::inner
外连接:左外:left [outer]
右外:right [outer]
全外:full
[outer]
交叉连接:cross
其实sq92语法与sql99 语法差不多,只是 多了inner join on关键字
外连接:应用场景 用于查询一个表中有,而另一个表中没有的记录
特点:
1)外连接的查询结果为主表中的所有记录
如果从表中有和他匹配的,则显示匹配的值
如果从表中没有和他匹配的则显示null
外连接查询结果=内连接结果+主表中有而从表中没有的记录
2)左外连接:left join左边的是主表
右外连接,right join右边的是主表
3)左外和右外交换两个表的顺序,可以实现同样的效果.
4)全外连接=内连接的结果+表一中有但是表二中没有的+表二中有表一中没有的.(sql语句中不支持全外连接)
5)交叉连接:就是sq99中的笛卡尔乘积
语法:表A across join 表B;
小总结
sql99与sql92
功能:sql99支持的较多
可读性:sql99实现连接条件和帅选条件的分离,可读性较高.
其他查询方式如下图:(图片和笔记均来自尚硅谷)