表的连接

来源:互联网 发布:网络四大名著紫川 编辑:程序博客网 时间:2024/06/17 08:47

进行表的连接的时候就需要设置一个数据主控方
连接主要分为两种形式,
内连接(等值连接):所有满足条件的数据都会显示出来;
外连接(左外连接,右外连接,全外连接):控制左表与右表的数据是否全部显示
内连接

     Select e.empno,e.ename,e.job,d.deptno,d.dname,d.loc     FROM emp e,dept d     where e.deptno=d.deptno;

外连接
让等值判断左右两边有一边的数据可以全部显示出来,如要实现外连接使用(+)的方式完成;
左外连接:字段=字段(+)
右外连接:字段(+)=字段

 Select e.ename,e.job,m.ename from emp e,emp m    Where e.mgr=m.empno(+);

SQL 1999语法
Select [distinct]*|列[别名]
Form 表名称1
[CROSS JOIN 表名称2]
[NATURAL JOIN 表名称2]
[JOIN 表名称 ON(条件)|USING(字段)]
[LEFT|RIGHT|FULL OUTER JOIN 表名称2];

1,交叉连接:CROSS JOIN,主要的功能是产生笛卡尔积,简单实现多表查询;
范例;

 select*from emp cross join  dept;

**2,自然连接:NATURL JOIN 自动适应关联字段消除笛卡尔积(一般关联字段是外键,但是他以名字为主)
属于内连接的概念**

select*from emp natural join dept;

在返回查询结果的时候,默认情况下回将关联字段设置在第一列上,重复字段不再显示
3 *using 字句:如果说现在要一张表里面有多个关联字段存在,可以使用USING子句明确设置一个关联字段*

SELECT ename,sal FROM emp e JOIN dept d USING(deptno);

4 on子句:如果现在没有关联字段,则可以使用no子句设置关联条件

select * from emp e right join dept d on e.deptno = d.deptno

5,外链接,在sql:1999语法标准里面明确定义了数据表的左外连接,右外连接,全外连接的操作
范例:左外连接:

select *from emp left outer join dept using(deptno);

范例:右外连接

   select *from emp right outer join dept using(deptno);

范例:全外连接

    select *from emp full outer join dept using(deptno);
0 0
原创粉丝点击