实验二 Oracle SQLPLUS环境与查询Word文件下载.docx
- 文档编号:19670236
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:17
- 大小:20.37KB
实验二 Oracle SQLPLUS环境与查询Word文件下载.docx
《实验二 Oracle SQLPLUS环境与查询Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验二 Oracle SQLPLUS环境与查询Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
tiger
2)SQLPLUSUsername
再提示你输入密码。
SQLPLUSscott
tiger
3)SQLPLUSusername/password
SQLPLUSscott/tiger
4)断开与数据库的连接
SQL>
DISCONNECT
5)退出SQL*Plus
EXIT
或:
Quit
2.SQL命令
SQL命令包括数据定义语言(如Create、Alter等)和数据操作语言(SelectInsertUpdateDelete等),这些都可在SQL*Plus中使用。
如:
SELECTEMPNO,ENAME,JOB,SAL
2FROMEMPWHERESAL<
2500;
3.SQL*Plus命令
1)列出缓冲区的内容:
LIST
SQL*Plus显示当前缓冲区中的SQL命令(注意:
不缓存SQLPlus命令):
1SELECTEMPNO,ENAME,JOB,SAL
2500;
2)编辑当前行
如果上面的例子错误的输入为:
SELECTEPNO,ENAME,JOB,SAL
在屏幕上显示:
*
ERRORatline1:
ORA-0904:
invalidcolumnname
分析错误可以发现EMPNO错为EPNO。
则用CHANGE命令修改编辑当前行。
CHANGE/EPNO/EMPNO
修改的行在屏幕上显示:
1*SELECTEMPNO,ENAME,JOB,SAL
再用RUN命令运行当前命令。
RUN(或/)
SQL*PLUS列出其命令然后运行它。
3)增加一行
在当前行之后插入一新行,使用INPUT命令。
例如对上面例子增加第3行到该SQL命令中。
形式如下:
INPUT
3
接着可进入新行,然后按ENTER键,SQL*PLUS再次提示新行:
3ORDERBYSAL
4
按ENTER键,表示不进入任何行,然后用RUN检验和重新运行查询。
4)在一行上添加一原文
用APPEND命令,将一原文加到缓冲区中当前行的末端:
3*ORDERBYSAL
APPENDDESC
3*ORDERBYSALDESC
使用RUN检验和重新运行查询。
5)删除一行
●用LIST命令列出要删除的行。
●用DEL命令删除。
DEL
6)用系统编辑程序编辑命令
在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT),命令形式为:
EDIT
EDIT将缓冲区中的内容装入系统缺省的文本编辑器,然后用文本编辑器的命令编辑文本。
完成后保存编辑的文本,然后退出。
该文本保存到当前的缓冲区。
7)保存SAVE命令
SAVE文件名
然后用SQVE保存到EMPINFO文件中:
SAVEempinfo
Createdfileempinfo
8)运行命令文件
可用命令START文件名或者@文件名的命令格式。
如上例:
STARTEMPINFO
或SQL>
@EMPINFO
9)清缓冲区
CLEARBUFFER
10)DESCRIBE列出表的结构
DESCEMP
Name
Null?
Type
EMPNO
NOTNULL
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
MGR
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
DEPTNO
NUMBER
(2)
4.Oracle查询
1.显示EMP表中所有的部门号、职工名称和管理者号码:
SELECTDEPTNO,ENAME,MGR
FROMEMP;
----------------
-----------------
--------------
20
SMITH
7902
30
ALLEN
7698
WARD
JONES
7839
MARTIN
BLAKE
10
CLARK
SCOTT
7566
KING
TURNER
ADAMS
7788
JAMES
FORD
MILLER
7782
2.算术运算符在SQL中的使用
SELECTENAME,SAL+250*12FROMEMP;
3.连字符的使用
把职工号和职工名字连接起来,如下:
SELECTEMPNO||ENAMEEMPLOYEEFROMEMP;
把职工号和职工名字中间用‘-’连接起来,并输出‘WORKSINDEPARTMENT’,如下:
SELECTEMPNO||’-‘||ENAMEEMPLOYEE,‘WORKSINDEPARTMENT’,DEPTNO
4.禁止重复
如果列举出EMP表中所有部门号:
Selectdeptnofromemp;
从上表中可以看出部门号之间存在着许多的相同的,可以用DISTINCT子句来消除重复的。
SELECTDISTINCTdeptnofromemp;
---------------
5.排序
按单个字段排序,如按照ENAME排序,
SELECTENAME,JOB,SAL*12,DEPTNO
FROMEMP
ORDERBYENAME;
SAL*12
-------------------------
CLERK
13200
ALLEM
SALESMAN
19200
MANAGER
34200
29400
ANALYST
36000
11400
35700
PRESIDENT
60000
15000
15600
9600
18000
按多个字段排序:
如按部门号升序,按工资降序排序
SELECTDEPTNO,JOB,ENAME
ORDERBYDEPTNO,SALDESC;
6.带条件的查询
1)查询工作是CLERK的所有职工的姓名,职工号和部门号
SELECTENAME,EMPNO,JOB,DEPTNO
WHEREJOB=‘CLERK’;
7369
7876
7900
7934
2)从DEPT表中查询出部门号大于20的部门名称
SELECTDNAME,DEPTNO
FROMDEPT
WHEREDEPTNO>
20;
DNAME
SALES
OPERATIONS
40
3)复合条件查询
查询工作是MANAGER并且工资大于1500,或者工作是SALESMAN的职工信息:
SELECTEMPNO,ENAME,JOB,SAL,DEPTNO
WHERESAL>
1500ANDJOB=‘MANAGER’ORJOB=‘SALESMAN’;
------------------
7499
1600.00
7521
1250.00
2975.00
7654
2850.00
2450.00
7844
1500.00
7.操作符的应用
1)BETWEEN的应用
查询工资在1000到2000之间的职工名字和工资信息。
SELECTENAME,SAL
WHERESALBETWEEN1000AND2000;
-------------------------------
1100.00
1300.00
2)IN
查询有7902,7566,7788三个MGR号之一的所有职工:
SELECTEMPNO,ENAME,SAL,MGR
WHEREMGRIN(7902,7566,7788);
--------------------------
--------------------
800.00
3000.00
89-2
3)LIKE
通配符%代表任意0或多个字符。
通配符_代表任意单个字符。
查询名字以“S”开始的所有职工:
SELECTENAME
WHEREENAMELIKE‘S%’;
------------------------
查询名字只有4个字符的所有职工:
WHEREENAMELIKE‘____’;
4)ISNULL
查询没有管理者的所有职工:
SELECTENAME,MGR
WHEREMGRISNULL;
----------
8.单&
号替代变量
1)数字变量输入:
SELECTEMPNO,ENAME,SAL
WHEREDEPTNO=&
DEPARTMENT_NUMBER;
Entervaluefordepartment_number:
---------------------
2450.00
5000.00
1300.00
2)字符串变量输入:
SELECTEMPNO,ENAME,SAL*12
WHEREJOB=‘&
JOB_TITLE’;
Entervalueforjob_title:
MANAGER
-----------------------
35700.00
34200.00
29400.00
9.字符函数的应用
见表4-5
10.数字函数的应用
见表4-4
11.日期函数的应用
见表4-6,4-7
12.数据类型转换
1)TO_CHAR数字数据转换为字符串
selectto_char(8897)fromdual;
2)TO_NUMBER字符串数据转换为数字
selectto_number(‘8897’)fromdual;
3)TO_DATE字符串数据转换为日期数据
selectto_date(‘12-DEC-02’)fromdual;
13.分组函数的应用
1)分组函数见表4-8
2)分组函数应用
求平均值
SELECTAVG(SAL)FROMEMP;
AVG(SAL)
2073.2149
求最小值
SELECTMIN(SAL)FROMEMPWHEREJOB=‘CLERK’;
MIN(SAL)
800
求数目
SELECTCOUNT(*)FROMEMPWHEREDEPTNO=20;
COUNT(*)
5
3)GROUPBY子句
求每个部门中的平均工资:
SELECTJOB,AVG(SAL)FROMEMP
GROUPBYJOB;
-------------------
---------------------------
3000
1037.5
2758.33333
5000
1400
4)HAVING子句
查询人数超过3人的部门中的平均工资:
SELECTDEPTNO,AVG(SAL)FROMEMP
GROUPBYDEPTNO
HAVINGCOUNT(*)>
3;
2175
1566.66667
14.连接
从EMP和DEPT中查询出职工名字、工作和部门名称:
SELECTENAME,JOB,DNAMEFROMEMP,DEPT
WHEREEMP.DEPTNO=DEPT.DEPTNO;
ACCOUNTING
RESEARCH
ANAYLST
15.子查询的应用
从EMP中查询出工资最低的职工:
SELECTENAME,JOB,SALFROMEMP
WHERESAL=(SELECTMIN(SAL)FROMEMP);
----------------------
从EMP中查询出每个部门工资最低的职工:
SELECTENAME,SAL,DEPTNOFROMEMP
WHERESALIN
(SELECTMIN(SAL)FROMEMPGROUPBYDEPTNO);
950
1300
五、拓展题
复杂查询的不同格式的实现及增删改操作。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 Oracle SQLPLUS环境与查询 实验 SQLPLUS 环境 查询
![提示](https://static.bdocx.com/images/bang_tan.gif)