实验二 Oracle SQL PLUSWord格式文档下载.docx
- 文档编号:909305
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:21
- 大小:21.64KB
实验二 Oracle SQL PLUSWord格式文档下载.docx
《实验二 Oracle SQL PLUSWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《实验二 Oracle SQL PLUSWord格式文档下载.docx(21页珍藏版)》请在冰点文库上搜索。
显示SQL缓冲区的所有行
LISTn
Ln
显示SQL缓冲区中的一行到n行
LISTmn
Lmn
SQL缓冲区中的从第m行显示到第n行
RUN
R
显示并运行在缓冲区中的当前SQL命令
SAVEfilename
把SQL缓冲区中的内容保存到以filename为名字的文件中,默认路径为orawin\bin
GETfilename
把以filename为名字的文件内容调入SQL缓冲区中
STARTfilename
@filename
运行以前保存的命令文件
EDfilename
用默认的编辑器编辑保存的文件内容
EXIT
退出SQL*Plus
RUNFORMfilename
从SQL*Plus中运行一个OracleForms应用程序
SPOOLfilename
写所有的后面的命令或者输出到一个已经命名的文件中。
假脱机输入输出文件的后缀为.LIS
SPO[OL]OFF|OUT
OFF关闭假脱机输入输出文件;
OUT改变假脱机输入输出,送文件到打印机上
DESCRIBEtablename
DESCtablename
显示任何数据库表的数据结构
HELP
击活Oracle内部的帮助部件
HOSTcommand
在SQL*Plus中击活一个操作系统命令
CONNECTuserid/password
CONNuserid/password
在当前的登录下,击活其它的Oracle用户
PROMPTtext
当运行一个命令文件时,显示文本
2.表名命名规则
所用的表名必须满足下面的条件:
a)名字必须以A-Z或a-z的字母开始;
b)名字可以包括字母、数字和特殊字母(_)。
字符$和#也是合法的,但是这种用法不提倡;
c)名字大小写是一样的;
例如EMP、emp和eMp是表示同一个表;
d)名字最长不超过30个字符;
e)表名不能和其它的对象重名;
f)表名不能是SQL保留字。
3.字段类型
表5字段类型
数据类型
描述
VARCHAR2(w)
变长字符长度为w。
最长为2000个字符。
CHAR(w)
定长字符长度为w。
默认为1个字符;
最长为255个字符
NUMBER
38位有效数字的浮点数
NUMBER(w)
W位精确度的整数,范围从1至38
NUMBER(w,s)
W是精度,或总的数字书,范围从1至38。
S是比例,或是小数点右边的数字位。
比例的范围从-84至127
DATE
日期值,范围从公元前14712年1月到公元314712年12月
LONG
变长字符串,其最大长度为2G(或231-1个字节)
RAW和LONGRAW
面向字节数据,可存储字符串、浮点数,二进制数据等
1.SQL*Plus的启动
当登录到操作系统后,有三种方法启动SQL*Plus。
1)SQLPLUS
(或SQLPLUSW,下同)
将看到如下的信息:
SQL*Plus:
Release9.0.1.0.1-Productionon星期二9月1314:
27:
512005
(c)Copyright2001OracleCorporation.Allrightsreserved.
请输入用户名:
输入你的用户名字并按回车。
SQL*Plus将提示:
请输入口令:
输入你的密码并按回车。
那么,将看到SQL*Plus的提示符:
SQL>
例如:
SQLPLUS
EnterUsername:
scott
EnterPassword:
tiger
2)SQLPLUSUsername
再提示你输入密码。
SQLPLUSscott
tiger
3)SQLPLUSusername/password
SQLPLUSscott/tiger
4)断开与数据库的连接
SQL>
DISCONNECT
5)退出SQL*Plus
或:
Quit
2.SQL命令
SQL命令包括数据定义语言(如Create、Alter等)和数据操作语言(SelectInsertUpdateDelete等),这些都可在SQL*Plus中使用。
如:
SELECTEMPNO,ENAME,JOB,SAL
2FROMEMPWHERESAL<
2500;
3.SQL*Plus命令
1)列出缓冲区的内容:
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命令中。
形式如下:
3
接着可进入新行,然后按ENTER键,SQL*PLUS再次提示新行:
3ORDERBYSAL
4
按ENTER键,表示不进入任何行,然后用RUN检验和重新运行查询。
4)在一行上添加一原文
用APPEND命令,将一原文加到缓冲区中当前行的末端:
3*ORDERBYSAL
APPENDDESC
3*ORDERBYSALDESC
使用RUN检验和重新运行查询。
5)删除一行
●用LIST命令列出要删除的行。
●用DEL命令删除。
6)用系统编辑程序编辑命令
在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT),命令形式为:
EDIT
EDIT将缓冲区中的内容装入系统缺省的文本编辑器,然后用文本编辑器的命令编辑文本。
完成后保存编辑的文本,然后退出。
该文本保存到当前的缓冲区。
7)保存SAVE命令
SAVE文件名
然后用SQVE保存到EMPINFO文件中:
SAVEempinfo
Createdfileempinfo
8)运行命令文件
可用命令START文件名或者@文件名的命令格式。
如上例:
STARTEMPINFO
或SQL>
@EMPINFO
9)清缓冲区
10)DESCRIBE列出表的结构
DESCEMP
Name
Null?
Type
EMPNO
NOTNULL
NUMBER(4)
ENAME
VARCHAR2(10)
JOB
MGR
HIREDATE
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.字符函数的应用
见表~
10.数字函数的应用
11.日期函数的应用
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 Oracle SQL PLUS 实验