//查询表中的记录数

select count(*) from emp;

 

select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno;

 

select e.ename,e.sal,d.dname,s.grade from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;



select e.ename,e.sal,d.dname,decode(s.grade,1,'第五等工资',2,'第四等工资',3,'第三等工资') from emp e,dept d,salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal;

 

二,左右连接

//右连接,得到匹配结果后将右侧的结果全部显示出来

select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno(+)=d.deptno;

 

 

//左连接,得到匹配结果后将左侧的结果全部显示出来

select e.empno,e.ename,d.deptno,d.dname,d.loc from emp e,dept d where e.deptno=d.deptno(+);

 

默认是左连接

 

三,sql:1999语法

交叉连接:产生笛卡尔积

select * from emp cross join dept;

 

自然连接:自动进行关联字段的匹配

select * from emp natural join dept;

 

using子句:直接关联的操作列

select * from emp e join dept d using(deptno) where deptno=30;

 

on子句:用户自己编写连接的条件

select * from emp e join dept d on(e.deptno=d.deptno) where e.deptno=30;

 

右外连接:

select * from emp e right outer join dept d on(e.deptno=d.deptno);

 

左外连接:

select * from emp e left outer join dept d on(e.deptno=d.deptno);

 

posted on 2011-02-06 14:20  魔战  阅读(239)  评论(0编辑  收藏  举报