多表查询一些常用的连接方式
等价连接:用=进行两张那个表链接查询;
不等价连接:通过>,< ,BETWEEN AND 以及LIKE;
外连接:左外连接与右外连接,全连接(full outer join)。
内连接:跟等价连接一样的效果inner join。
自连接:将一张表命名2个别名 进行查询。
集合运算符
Union,将重复数据进行筛选,并排序输出。
Minus 两个结果集相减。
Intersect 两个结果集的交集。
主要在数据库中我们用到最多的是外连接,外连接有左外连接右外连接,那么有什么区别?
上图就是右外连接,因为+是在左边,做查询时会将右边表的记录全部检索出来,包括不符合条件的结果集。注意
用+符号只对于oracle数据库有效果。以下是标准通用sql
使用场景举个例子;当你在淘宝购买东西时,你有时会收到你浏览过的店铺的消息,但是你并没有购买,因为这些店铺商家的后台记录上有你浏览的记录,他的检索方式就是只要是用户浏览的都会写入数据库,之后分为购买了与未购买的用户,就是通过外连接的方式去检索的。
下面是一个实例:
比如说我想查询所有emp所对应的user,而数据库中有user并没有emp,于是会出现检索不到的情况,而用到外连接查询就会忽略掉条件就所有的不匹配的检索出来