个人网站介绍模板,手机应用开发教程,网站的站长是什么意思,事业单位门户网站建设评价内连接(自然连接)
等值连接、自然连接和不等值连接
#xff5b;内连接是join 关键字连接两个表#xff0c;语法为 table1 join table2 on 条件。 根据使用的比较方式不同#xff0c;内连接又分为等值连接、自然连接和不等值连接。
等值连接#xff1a;所谓等值连接…内连接(自然连接)
等值连接、自然连接和不等值连接
内连接是join 关键字连接两个表语法为 table1 join table2 on 条件。 根据使用的比较方式不同内连接又分为等值连接、自然连接和不等值连接。
等值连接所谓等值连接是指在连接条件中使用等于运算符比较被连接的值也就是通过相等的列值连接起来的查询。
例子Select empno,ename,sal,emp.deptno,dname from emp,dept where emp.deptnodept.deptno;
非等值连接 所谓不等连接就是在连接条件中使用除等号外的其他比较运算符构成非等值连接查询。可以使用的比较运算符包括大于、小于、大于等于、小于等于、不等于、!不等于、LIKE、IN和BETWEEN等。
例子select e.ename,e.sal,s.grade from emp e join salgrade s on e.sal between s.losal and s.hisal; 查询所有员工的薪水等级
自然连接自然连接是在两张表中寻找那些数据类型和列名都相同的字段然后自动地将他们连接起来并返回所有符合条件的结果。
例子select * from emp natural join dept; 外连接
外连接的结果集 内连接的结果集 驱动表在匹配表中找不到匹配记录的数据和空值 使用一张表中的所有记录去和另一张表中的记录按条件匹配(空值也会匹配)这个表中的所有记录都会显示。
左外连接右外连接全外连接
LEFT/RIGHT/FULL OUTER JOIN 左外连接 (左边的表不加限制)【例】t1 left outer join t2 其中t1是驱动表t2是匹配表 等价于t2 right outer join t1
【例】查询每个员工的经理的名字
select worker.ename,manager.ename from emp worker left outer join emp manager on worker.mgrmanager.empno; 右外连接(右边的表不加限制)t1 right outer join t2 t2是驱动表t1是匹配表 等价于: t2 left outer join t1
【例】哪些员工没有下属不是别人的领导? 外连接匹配表PK is null 表示否定问题不是不包括等等。 select manager.ename from emp worker
right outer join emp manager on worker.mgr manager.empno
首先找到所有经理下面的员工是哪些
where worker.empno is null;
(然后将员工为空的过滤出来) 全外连接(左右两表都不加限制)full outer join
{
左表和右表都不做限制所有的记录都显示两表不足的地方用null 填充。
【例】
select e.ename, d.loc from emp e full outer join dept d on (e.deptno d.deptno);
}
自连接同一张表内的连接自连接是等值连接的一种。表中的列外键关联自己表的主键列。 自连接(self join)是SQL语句中经常要用的连接方式使用自连接可以将自身表的一个镜像当作另一个表来对待从而能够得到一些特殊的数据。
【例】查询每个员工的经理的名字
select worker.ename,manager.ename from emp worker join emp manager on worker.mgrmanager.empno;