21+ORACLE实验指导(7)

2019-08-03 12:10

FORD ANALYST JAMES CLERK JONES MANAGER KING PRESIDENT MARTIN SALESMAN MILLER CLERK SCOTT ANALYST SMITH CLERK TURNER SALESMAN WARD SALESMAN 按多个字段排序:

如按部门号升序,按工资降序排序 SELECT DEPTNO, JOB, ENAME

36000 11400 35700 60000 15000 15600 36000 9600 18000 15000 20 30 20 10 30 10 20 20 30 30

FROM EMP

ORDER BY DEPTNO, SAL DESC; DEPTNO JOB ------------------------- ------------------------- 10 PRESIDENT 10 MANAGER 10 CLERK 20 ANALYST 20 ANALYST 20 MANAGER 20 CLERK 20 CLERK 30 MANAGER 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 SALESMAN 30 CLERK

6. 带条件的查询

1)查询工作是CLERK的所有职工的姓名,职工号和部门号 SELECT ENAME, EMPNO, JOB, DEPTNO FROM EMP

ENAME

------------------------- KING CLARK MILLER SCOTT FORD JONES ADAMS SMITH BLAKE ALLEN TURNER WARD MARTIN JAMES

WHERE JOB = ‘CLERK’; ENAME EMPNO JOB ------------------------- ------------------------- ------------------------- SMITH 7369 CLERK ADAMS 7876 CLERK JAMES 7900 CLERK MILLER 7934 CLERK 2)从DEPT表中查询出部门号大于20的部门名称 SELECT DNAME, DEPTNO

DEPTNO

------------------------- 20 20 30 10

FROM DEPT

WHERE DEPTNO > 20; DNAME DEPTNO ------------------------- ------------------------- SALES 30 OPERATIONS 40 3)复合条件查询

查询工作是MANAGER并且工资大于1500,或者工作是SALESMAN的职工信息:

第31页

SELECT EMPNO,ENAME, JOB,SAL,DEPTNO

FROM EMP

WHERE SAL>1500 AND JOB = ‘MANAGER’ OR JOB = ‘SALESMAN’; EMPNO ENAME JOB SAL ----------------- ---------------- ----------------- ------------------ DEPTNO ----------------- 7499 ALLEN SALESMAN 1600.00 7521 WARD SALESMAN 1250.00 7566 JONES MANAGER 2975.00 7654 MARTIN SALESMAN 1250.00 7698 BLAKE MANAGER 2850.00 7782 CLARK MANAGER 2450.00 7844 TURNER SALESMAN 1500.00

7. 操作符的应用 1)BETWEEN的应用

查询工资在1000到2000之间的职工名字和工资信息。 SELECT ENAME, SAL

FROM EMP

WHERE SAL BETWEEN 1000 AND 2000; ENAME SAL ------------------------------- --------------- ALLEN 1600.00 WARD 1250.00 MARTIN 1250.00 TURNER 1500.00 ADAMS 1100.00 MILLER 1300.00

2)IN

查询有7902,7566,7788三个MGR号之一的所有职工: SELECT EMPNO, ENAME, SAL, MGR FROM EMP

WHERE MGR IN (7902,7566,7788); EMPNO ENAME SAL

------------------------- -------------------------- -------------------------- 7369 SMITH 800.00 7788 SCOTT 3000.00 7876 ADAMS 1100.00 89-2 FORD 3000.00

3)LIKE

通配符%代表任意0或多个字符。 通配符_代表任意单个字符。 查询名字以“S”开始的所有职工: SELECT ENAME

FROM EMP

WHERE ENAME LIKE ‘S%’; ENAME

30 30 20 30 30 10 30

MGR

-------------------- 7902 7566 7788 7566

第32页

------------------------ SMITH SCOTT

查询名字只有4个字符的所有职工: SELECT ENAME FROM EMP

WHERE ENAME LIKE ‘_ _ _ _’; ENAME

------------------------ WARD KING FORD

4)IS NULL

查询没有管理者的所有职工: SELECT ENAME,MGR FROM EMP

WHERE MGR IS NULL; ENAME MGR ------------------------ ---------- KING

8. 单&号替代变量 1)数字变量输入:

SELECT EMPNO,ENAME,SAL FROM EMP

WHERE DEPTNO = &DEPARTMENT_NUMBER; Enter value for department_number:10 EMPNO ENAME SAL --------------------- --------------------- ------------------------ 7782 CLARK 2450.00 7839 KING 5000.00 7934 MILLER 1300.00 2)字符串变量输入:

SELECT EMPNO,ENAME,SAL*12 FROM EMP

WHERE JOB = ‘&JOB_TITLE’;

Enter value for job_title: MANAGER ENAME DEPTNO SAL*12

-------------------- ----------------------- ----------------------- JONES 20 35700.00 BLAKE 30 34200.00 CLARK 10 29400.00

9. 字符函数的应用 见表4-5

10.数字函数的应用 见表4-4

11.日期函数的应用

第33页

见表4-6,4-7

12.数据类型转换

1)TO_CHAR 数字数据转换为字符串 select to_char(8897) from dual;

2)TO_NUMBER字符串数据转换为数字 select to_number(‘8897’) from dual; 3)TO_DATE字符串数据转换为日期数据

select to_date(‘12-DEC-02’) from dual;

13.分组函数的应用 1)分组函数见表4-8 2)分组函数应用 求平均值

SELECT AVG(SAL) FROM EMP; AVG(SAL) ------------------ 2073.2149

求最小值

SELECT MIN(SAL) FROM EMP WHERE JOB = ‘CLERK’;MIN(SAL)

--------------------- 800

求数目

SELECT COUNT(*) FROM EMP WHERE DEPTNO = 20; COUNT(*)

--------------------- 5

3)GROUP BY子句

求每个部门中的平均工资:

SELECT JOB,AVG(SAL) FROM EMP GROUP BY JOB; JOB AVG(SAL) ------------------- --------------------------- ANALYST 3000 CLERK 1037.5 MANAGER 2758.33333 PRESIDENT 5000 SALESMAN 1400 4)HAVING子句

查询人数超过3人的部门中的平均工资:

SELECT DEPTNO,AVG(SAL) FROM EMP GROUP BY DEPTNO

HAVING COUNT(*)>3; DEPTNO AVG(SAL) ------------------- ----------------------- 20 2175 30 1566.66667

第34页

14.连接

从EMP和DEPT中查询出职工名字、工作和部门名称: SELECT ENAME,JOB,DNAME FROM EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO; ENAME JOB DNAME

----------------------- -------------------- ----------------------- CLARK MANAGER ACCOUNTING MILLER CLERK ACCOUNTING KING PRESIDENT ACCOUNTING SMITH CLERK RESEARCH SCOTT ANALYST RESEARCH JONES MANAGER RESEARCH ADAMS CLERK RESEARCH FORD ANAYLST RESEARCH ALLEN SALESMAN SALES BLAKE MANAGER SALES TURNER SALESMAN SALES JAMES CLERK SALES MARTIN SALESMAN SALES WARD SALESMAN SALES

15.子查询的应用

从EMP中查询出工资最低的职工:

SELECT ENAME,JOB,SAL FROM EMP

WHERE SAL = (SELECT MIN(SAL)FROM EMP ); ENAME JOB DNAME ---------------------- ------------------------ --------------------- SMITH CLERK 800 从EMP中查询出每个部门工资最低的职工: SELECT ENAME,SAL,DEPTNO FROM EMP

WHERE SAL IN

(SELECT MIN(SAL) FROM EMP GROUP BY DEPTNO);ENAME SAL DEPTNO ------------------------ -------------------- -------------------- SMITH 800 20 JAMES 950 30 MILLER 1300 10

四.上机作业

1. 对基本表S、C、SC操作

1)检索学习课程号为C2的学生学号与姓名。 2)检索选修课程名为MATHS的学生学号与姓名。 3)检索不学C2课的学生姓名与年龄。

4)检索学习全部课程的学生心目。

5)计算每个学生有成绩的课程门数和平均成绩。

2.对Oracle数据库基本表EMP和DEPT操作:

第35页


21+ORACLE实验指导(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《国际结算》期末试卷及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: