1、等值连接是最常见的一种连接查询,通常是在主外键关联关系的表间建立,并将连接条件设定为有关系的列,使用“=”连接相关的表。
成都创新互联公司成立于2013年,先为那坡等服务建站,那坡等地企业,进行企业商务咨询服务。为那坡企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
2、非等值连接是指在多个表中使用非等号连接,查询在多个表中有非等值关联关系的数据,非等值连接操作符包括、=、、=、以及BETWEEN...AND、LIKE、IN等。
3、自连接是一种比较特殊的连接查询,数据来源是一个表。
4、左外连接是内连接的一种扩展,不止会返回满足连接条件的记录,还会返回那些不满足连接条件的操作符左边表的其他记录。
5、右外连接和左外连接相似,右外连接不止会返回满足连接条件的记录,还会返回那些不满足连接条件的操作符右边表的其他记录。
只要是两张以上的表关联查询的时候,就会返回一个笛卡尔乘积,数据库会去掉那些冗余的数据,只返回有用的数据。我们用左连接和右连接查询的时候就会把那些冗余的数据也查询出来,还有双向连接也是。比如有一个学生表,students(s_id,
s_name,
s_class)
,一张班级表
classes(c_id,
c_name)。分别有如下数据:
学生表:
班级表:
s_id
s_name
s_class
c_id
c_name
1
张三
1班
1
1班
2
李四
3班
2
2班
如果学生表为左表,普通查询为:select
s_name
,c_name
from
students
s,classes
c
where
s.s_class=c.c_name;
返回的结果为
张三
1班。
而当你把学生表当左表的时候,右连接查询的时候,返回的结果为:张三
1班
,李四
3班。
求采纳
只要是两张以上的表关联查询的时候,就会返回一个笛卡尔乘积,数据库会去掉那些冗余的数据,只返回有用的数据.我们用左连接和右连接查询的时候就会把那些冗余的数据也查询出来,还有双向连接也是.
Oracle数据库的左连接和右连接
在Oracle PL-SQL中,左连接和右连接以如下方式来实现
查看如下语句:
SELECT emp_name,dept_name FORM Employee,Department WHERE Employee.emp_deptid(+) = Department.deptid
此SQL文使用了右连接,即“(+)”所在位置的另一侧为连接的方向,右连接说明等号右侧的所有记录均会被显示,无论其在左侧是否得到匹配,也就是说上例中无论会不会出现某个部门没有一个员工的情况,这个部门的名字都会在查询结果中出现.
反之:SELECT emp_name,dept_name FORM Employee,Department WHERE Employee.emp_deptid = Department.deptid(+)
则是左连接,无论这个员工有没有一个能在Department表中得到匹配的部门号,这个员工的记录都会被显示
一般的相等连接
select * from a,b where a.id = b.id;
这个是内连接
内联inner join 、左联left outer join 、右联right outer join 、全联full outer join
内联:select * from T1 ,T3 where T1.userid = T3.userid(其实这样的结果等同于select * from T1 inner join T3 on T1.userid=T3.userid )。
左联:select * from T1 left outer join T2 on T1.userid=T2.userid
右联:select * from T1 right outer join T2 on T1.userid=T2.userid
全外联:select * from T1 full outer join T2 on T1.userid=T2.userid或
select * from a full join b on a.id=b.id