//查询表中的记录数
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);