标签:
范例1:查询emp表中的数据量 —— 14条数据
SELECT COUNT(*) FROM emp ; |
范例2:查询dept表中的数据量 —— 4条数据
SELECT COUNT(*) FROM dept ; |
范例3:现在查询所有的雇员和部门的全部详细信息
SELECT * FROM emp,dept ; |
范例4:查询sh.sales表中的数据量
SELECT COUNT(*) FROM sales ; |
范例6-5:查询sh.costs表中的数据量
SELECT COUNT(*) FROM costs ; |
范例6-6:将sales和costs两张表关联查询,同时设置消除笛卡尔积的条件
SELECT COUNT(*) FROM sales s,costs c WHERE s.prod_id=c.prod_id ; |
范例7:之前的查询结果中包含了笛卡尔积,现在将其消除
SELECT * FROM emp,dept WHERE emp.deptno=dept.deptno ; |
范例8:查询每个雇员的编号、姓名、职位、基本工资、部门名称、部门位置信息
SELECT emp.empno,emp.ename,emp.job,emp.sal,dept.dname,dept.loc FROM emp,dept WHERE emp.deptno=dept.deptno ; |
范例9:通过别名查询雇员的编号、姓名、职位、基本工资、部门名称、部门位置
SELECT e.empno,e.ename,e.job,e.sal,d.dname,d.loc FROM emp e,dept d WHERE e.deptno=d.deptno ; |
范例10:查询出每个雇员的编号、姓名、雇佣日期、基本工资、工资等级
SELECT e.empno,e.ename,e.hiredate,e.sal,s.grade FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal ; |
范例11:使用DECODE()进行替换
SELECT e.empno,e.ename,e.hiredate,e.sal, DECODE(s.grade,1,‘E等工资‘,2,‘D等工资‘,3,‘C等工资‘,4,‘B等工资‘,5,‘A等工资‘) grade FROM emp e,salgrade s WHERE e.sal BETWEEN s.losal AND s.hisal ; |
范例12:查询出每个雇员的姓名、职位、基本工资、部门名称、工资所在公司的工资等级;
SELECT e.ename,e.job,e.sal FROM emp e ; |
SELECT e.ename,e.job,e.sal,d.dname FROM emp e,dept d WHERE e.deptno=d.deptno ; |
SELECT e.ename,e.job,e.sal,d.dname,s.grade , DECODE(s.grade,1,‘E等工资‘,2,‘D等工资‘,3,‘C等工资‘,4,‘B等工资‘,5,‘A等工资‘) grade FROM emp e,dept d,salgrade s WHERE e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal ; |
范例:向emp表中添加一条新的纪录
INSERT INTO emp(empno,ename,job,mgr,hiredate,sal,comm,deptno) VALUES (8888,‘李兴华‘,‘CLERK‘,7369,SYSDATE,800,100,null); |
范例13:现在将emp和dept表联合查询,使用内连接(等值连接)
SELECT * FROM emp e,dept d WHERE e.deptno=d.deptno ; |
范例14:使用左外连接,显示雇员8888的信息
SELECT * FROM emp e,dept d WHERE e.deptno=d.deptno(+) ; |
范例15:增加右外连接,显示部门40的信息
SELECT * FROM emp e,dept d WHERE e.deptno(+)=d.deptno ; |
范例16:取出emp表中的全部数据
SELECT * FROM emp ; |
范例17:查询出每个雇员的编号、姓名及其上级领导的编号、姓名
SELECT e.empno eno ,e.ename ename,m.empno mno,m.ename mname FROM emp e,emp m WHERE e.mgr=m.empno ; |
SELECT e.empno eno ,e.ename ename,m.empno mno,m.ename mname FROM emp e,emp m WHERE e.mgr=m.empno(+) ; |
范例18:查询出在1981年雇佣的全部雇员的编号、姓名、雇佣日期(按照年-月-日显示)、工作、领导姓名、雇员月工资、雇员年工资(基本工资+奖金),雇员工资等级、部门编号、部门名称、部门位置,并且要求这些雇员的月基本工资在1500~3500之间,将最后的结果按照年工资的降序排列,如果年工资相等,则按照工作进行排序
SELECT e.empno,e.ename,e.hiredate,e.sal,(e.sal+NVL(e.comm,0))*12 income FROM emp e WHERE TO_CHAR(e.hiredate,‘yyyy‘)=‘1981‘ AND e.sal BETWEEN 1500 AND 3500 ; |
SELECT e.empno,e.ename,e.hiredate,e.sal,(e.sal+NVL(e.comm,0))*12 income , m.ename mname FROM emp e , emp m WHERE TO_CHAR(e.hiredate,‘yyyy‘)=‘1981‘ AND e.sal BETWEEN 1500 AND 3500 AND e.mgr=m.empno(+) ; |
SELECT e.empno,e.ename,e.hiredate,e.sal,(e.sal+NVL(e.comm,0))*12 income , m.ename mname , d.deptno,d.dname,d.loc FROM emp e , emp m , dept d WHERE TO_CHAR(e.hiredate,‘yyyy‘)=‘1981‘ AND e.sal BETWEEN 1500 AND 3500 AND e.mgr=m.empno(+) AND e.deptno=d.deptno ; |
SELECT e.empno,e.ename,e.hiredate,e.sal,(e.sal+NVL(e.comm,0))*12 income , m.ename mname , d.deptno,d.dname,d.loc , s.grade, DECODE(s.grade,1,‘E等工资‘,2,‘D等工资‘,3,‘C等工资‘,4,‘B等工资‘,5,‘A等工资‘) 工资等级 FROM emp e , emp m , dept d , salgrade s WHERE TO_CHAR(e.hiredate,‘yyyy‘)=‘1981‘ AND e.sal BETWEEN 1500 AND 3500 AND e.mgr=m.empno(+) AND e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal ; |
SELECT e.empno,e.ename,e.hiredate,e.sal,(e.sal+NVL(e.comm,0))*12 income , m.ename mname , d.deptno,d.dname,d.loc , s.grade, DECODE(s.grade,1,‘E等工资‘,2,‘D等工资‘,3,‘C等工资‘,4,‘B等工资‘,5,‘A等工资‘) 工资等级 FROM emp e , emp m , dept d , salgrade s WHERE TO_CHAR(e.hiredate,‘yyyy‘)=‘1981‘ AND e.sal BETWEEN 1500 AND 3500 AND e.mgr=m.empno(+) AND e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal ORDER BY income DESC , e.job ; |
范例19:使用交叉连接(CROSS JOIN),产生笛卡尔积
SELECT * FROM emp CROSS JOIN dept ; |
范例20:使用自然连接(NATION JOIN)
SELECT * FROM emp NATURAL JOIN dept ; |
范例21:USING子句,直接使用JOIN进行连接,同时指定关联的列
SELECT * FROM emp JOIN dept USING(deptno) ; |
范例22:ON子句,直接编写条件
SELECT * FROM emp e JOIN salgrade s ON(e.sal BETWEEN s.losal AND s.hisal) ; |
范例23:使用SQL:1999语法实现左外连接
SELECT * FROM emp e LEFT OUTER JOIN dept d ON (e.deptno=d.deptno) ; |
范例24:使用SQL:1999语法实现右外连接
SELECT * FROM emp e RIGHT OUTER JOIN dept d ON (e.deptno=d.deptno) ; |
范例25:使用SQL:1999语法实现全外连接
SELECT * FROM emp e FULL OUTER JOIN dept d ON (e.deptno=d.deptno) ; |
范例26:查询dept表的全部记录
SELECT * FROM dept ; |
范例27:查询10部门的详细记录
SELECT * FROM dept WHERE deptno=10 ; |
范例28:使用UNION将两个查询结果连接
SELECT * FROM dept UNION SELECT * FROM dept WHERE deptno=10 ; |
范例29:使用UNION ALL将两个查询结果连接
SELECT * FROM dept UNION ALL SELECT * FROM dept WHERE deptno=10 ; |
范例30:使用UNION来代替OR,查询所有办事员与销售人员的信息
SELECT * FROM emp WHERE job=‘SALESMAN‘ UNION SELECT * FROM emp WHERE job=‘CLERK‘ ; |
范例31:使用MINUS执行差集操作
SELECT * FROM dept MINUS SELECT * FROM dept WHERE deptno=10 ; |
范例32:使用INTERSECT执行交集操作
SELECT * FROM dept INTERSECT SELECT * FROM dept WHERE deptno=10 ; |
标签:
原文地址:http://www.cnblogs.com/doudouxiaoye/p/5801163.html