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