oracle实验二.docx
- 文档编号:4664390
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:28
- 大小:869.54KB
oracle实验二.docx
《oracle实验二.docx》由会员分享,可在线阅读,更多相关《oracle实验二.docx(28页珍藏版)》请在冰豆网上搜索。
oracle实验二
实验二
●实验目的
(1)熟悉Oracle的基本知识;
(2)熟悉Oracle的命令操作环境SQL*PLUS及常用命令;
(3)熟悉并掌握oracle常用的查询语句。
●实验内容
1.SQL*Plus命令
(1)列出缓冲区的内容:
LIST,SQL*Plus显示当前缓冲区中的SQL命令(注意:
不缓存SQLPlus命令):
(2)编辑当前行,则用CHANGE命令修改编辑当前行。
(3)增加一行,在当前行之后插入一新行,使用INPUT命令。
(4)在一行上添加一原文,用APPEND命令,将一原文加到缓冲区中当前行的末端:
(5)删除一行
(6)用LIST命令列出要删除的行。
(7)用DEL命令删除。
用系统编辑程序编辑命令,在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT)。
(8)保存SAVE命令。
(9)运行命令文件,可用命令START文件名或者@文件名的命令格式。
(10)清缓冲区,用CLEARBUFFER
(11)DESCRIBE列出表的结构
2.Oracle查询
(1)显示EMP表中所有的部门号、职工名称和管理者号码:
(2)算术运算符在SQL中的使用;
(3)连字符的使用,把职工号和职工名字连接起来,
(4)禁止重复,如果列举出EMP表中所有部门号:
(5)排序,按单个字段排序,如按照ENAME排序;
(6)按多个字段排序:
如按部门号升序,按工资降序排序。
(7)查询工作是CLERK的所有职工的姓名,职工号和部门号.
(8)从DEPT表中查询出部门号大于20的部门名称
(9)复合条件查询,查询工作是MANAGER并且工资大于1500,或者工作是SALESMAN的职工信息:
(10)BETWEEN的应用,查询工资在1000到2000之间的职工名字和工资信息。
(11)IN:
查询有7902,7566,7788三个MGR号之一的所有职工:
(12)LIKE:
通配符%代表任意0或多个字符。
通配符_代表任意单个字符。
查询名字以“S”开始的所有职工:
(13)查询名字只有4个字符的所有职工:
(14)ISNULL:
查询没有管理者的所有职工
9.字符函数的应用
10.数字函数的应用
11.日期函数的应用
12.数据类型转换
1)TO_CHAR数字数据转换为字符串
selectto_char(8897)fromdual;
2)TO_NUMBER字符串数据转换为数字
●实验步骤与调试过程
1.SQL*Plus命令
(1)列出缓冲区的内容:
LIST,SQL*Plus显示当前缓冲区中的SQL命令(注意:
不缓存SQLPlus命令):
请输入用户名:
system
你输入口令:
oracle
SQL>selectempno,ename,sal,deptnofromscott.EMP;
SQL>list
SQL>list1
SQL>list1last
(2)编辑当前行,则用CHANGE命令修改编辑当前行。
SQL>selectempno,ename,deptno,sal
2fromscott.EMP
3wheredeptno=’20’;
SQL>change/deptno=’20’/deptno=’30’
3*wheredeptno=’30’
SQL>run
1selectempno,ename,deptno,sal
2fromscott.EMP
3*wheredeptno=’30’
(3)增加一行,在当前行之后插入一新行,使用INPUT命令。
SQL>input
4orderbysal
5
SQL>run
1selectempno,ename,deptno,sal
2fromscott.EMP
3wheredeptno=’30’
4orderbysal
(4)在一行上添加一原文,用APPEND命令,将一原文加到缓冲区中当前行的末端:
SQL>list
1selectempno,ename,deptno,sal
2fromscott.EMP
3wheredeptno=’30’
4*orderbysal
SQL>appendDESC
4*orderbysalDESC
SQL>run
1selectempno,ename,deptno,sal
2fromscott.EMP
3wheredeptno=’30’
4*orderbysalDESC
(5)删除一行
(6)用LIST命令列出要删除的行。
SQL>list4
4*orderbysalDESC
SQL>del
SQL>run
1selectempno,ename,deptno,sal
2fromscott.EMP
3wheredeptno=’30’;
(7)用DEL命令删除。
用系统编辑程序编辑命令,在SQL*PLUS中运行操作系统缺省的文本编辑程序(EDIT)。
SQL>edit
已写入fileafiedt.buf
1selectempno,ename,deptno,sal
2fromscott.EMP
3*wheredeptno=’30’
(8)保存SAVE命令。
SQL>saveF:
\sqltext.txt
已创建fileF:
\sqltext.txt
(9)运行命令文件,可用命令START文件名或者@文件名的命令格式。
SQL>STARTF:
\sqltest.txt
或者
SQL>@F:
\sqltest.txt
(10)清缓冲区,用CLEARBUFFER
SQL>clearbuffer
Buffer已清除
(11)DESCRIBE列出表的结构
SQL>descscott.EMP
2.Oracle查询
(1)显示EMP表中所有的部门号、职工名称和管理者号码:
SQL>selectdeptnoas部门号,enameas职工名称,mgras管理者号码
2fromscott.emp
3orderbydeptno,mgr;
(2)算术运算符在SQL中的使用;
SQL>selectdeptnoas部门号,enameas职工名称,salas工资
2fromscott.emp
3wheredeptno=’10’;
SQL>selectdeptnoas部门号,enameas职工名称,sal-300as工资
2fromscott.emp
3wheredeptno=’10’;
(3)连字符的使用,把职工号和职工名字连接起来,
SQL>selectempno||enameasemployeefromscott.emp;
(4)禁止重复,如果列举出EMP表中所有部门号:
SQL>selectdeptnoas部门编号fromscott.emp;
SQL>selectdistinctdeptnoas部门编号fromscott.emp;
(5)排序,按单个字段排序,如按照ENAME排序;
SQL>selectempnoas员工编号,enameas员工名称,deptnoas部门编号
2fromscott.emp
3orderbyename;
(6)按多个字段排序:
如按部门号升序,按工资降序排序。
SQL>selectdeptnoas部门编号,empnoas员工编号,enameas员工名称,salas员工工资
2fromscott.emp
3orderbydeptno,saldesc;
(7)查询工作是CLERK的所有职工的姓名,职工号和部门号.
SQL>selectjobas工作,empnoas员工编号,enameas员工名称,deptnoas部门编号
2fromscott.emp
3wherejob=’CLERK’;
(8)从DEPT表中查询出部门号大于20的部门名称
SQL>selectdeptnoas部门编号,dnameas部门名称
2fromscott.empwheredeptno>20;
(9)复合条件查询,查询工作是MANAGER并且工资大于1500,或者工作是SALESMAN的职工信息:
SQL>selectempnoas员工编号,enameas员工名称,jobas员工工作,salas工资,deptnoas部门编号
2fromscott.emp
3wherejob=‘MANAGER’andsal>1500orjob=’SALESMAN’
4orderbyjob,sal;
(10)BETWEEN的应用,查询工资在1000到2000之间的职工名字和工资信息。
SQL>selectenameas员工名称,salas工资信息
2fromscott.emp
3wheresalbetween1000and2000;
(11)IN:
查询有7902,7566,7788三个MGR号之一的所有职工:
SQL>selectempnoas员工编号,enameas员工名称,mgras管理者,salas工资
2fromscott.emp;
3wheremgrin(7902,7566,7788)
4orderbyempno,sal,mgr;
(12)LIKE:
通配符%代表任意0或多个字符。
通配符_代表任意单个字符。
查询名字以“S”开始的所有职工:
SQL>selectempnoas员工编号,enameas员工名称fromscott.empwhereenamelike‘S%’;
(13)查询名字只有4个字符的所有职工:
SQL>selectenameas员工名字fromscott.empwhereenamelike’____’
(14)ISNULL:
查询没有管理者的所有职工
SQL>select*fromscott.empwheremgrisnull;
9.字符函数的应用
1)Initcap(char)函数把每个字符串的第一个字符换成大写
SQL>Selectinitcap(‘mr.teplow’)
fromdual;
2)Lower(char)函数整个字符串换成小写
SQL>Selectlower(‘Mr.FrankTownson’)
fromdual;
3)Replace(char,str1,str2)函数字符串中所有str1换成str2
SQL>Selectreplace(‘Scott’,’S’,’Boy’)
fromdual;
4)Soundex(char)函数字符串的语音表示,常用于名字的模糊查询,可查找发音相似拼写不同的字符串
SQL>Selectlast_name
fromemployee
wheresoundex(last_name)=soundex(‘SMYTHE’)
5)Substr(char,m,n)函数取出从m字符开始的n个字符的子串
SQL>Selectsubstr(‘ABCDEF’,2,1)
fromdual;
6)Length(char)函数求字符串的长度
SQL>Selectlength(‘Anderson’)
2fromdual;
10.数字函数的应用
1)Ceil(n)函数大于等于数值n的最小整数
selectceil(10.6)fromdual
2)Floor(n)小于等于数值n的最大整数
selectfloor(10.6)fromdual
3)Mod(m,n)M除以n的余数,若n=0,则返回m
selectmod(7,5)fromdual
4)Power(m,n)M的n次方
selectpower(3,4)fromdual
5)Round(n,m)将n四舍五入,保留小数点后m位
selectround(1234.5678,2)fromdual
6)Sign(n)若n=0,返回0;否则n>0,返回1;n<0,返回-1
selectsign
(1)fromdual
7)Sqrt(n)N的平方根
selectsqrt(4)fromdual
11.日期函数的应用
1)Sysdate函数当前日期和时间
SQL>Selectsysdate
fromdual;
2)Last_day函数本月最后一天
SQL>Selectlast_day(sysdate)
fromdual;
3)Add_months(d,n)函数当前日期d后推n个月
SQL>Selectadd_months(sysdate,2)
fromdual;
4)Months_between(f,s)函数日期f和s间相差月数
SQL>Selectmonths_between(sysdate,’12-MAR-02’)
fromdual;
5)Next_day(d,day)函数d后第一周指定的day日期
SQL>Selectnext_day(sysdate,’Monday’)
fromdual;
6)Y或YY或YYY格式年的最后一位,两位或三位
SQL>Selectto_char(sysdate,’YYY’)
fromdual;
7)SYEAR或YEAR格式年,SYEAR使公元前的年份前加一负号
SQL>Selectto_char(sysdate,’SYEAR’)
fromdual;
8)Q格式季度,1到3月为第一季度
SQL>Selectto_char(sysdate,’Q’)
fromdual;
9)MM格式月份数
SQL>Selectto_char(sysdate,’MM’)
fromdual;
10)RM格式月份的罗马表示
SQL>Selectto_char(sysdate,’RM’)
fromdual;
11)Month格式用9个字符长度表示的月份名
SQL>Selectto_char(sysdate,’Month’)
fromdual;
12)WW格式当年第几周
SQL>Selectto_char(sysdate,’WW’)
fromdual;
13)W格式本月第几周
SQL>Selectto_char(sysdate,’W’)
fromdual;
14)DDD格式当年第几天,1月1日为001,2月1日为032
SQL>Selectto_char(sysdate,’DDD’)
fromdual;
15)DD格式当月第几天
SQL>Selectto_char(sysdate,’DD’)
fromdual;
16)D格式周内第几天
SQL>Selectto_char(sysdate,’D’)
fromdual;
17)DY格式周内第几天缩写
SQL>Selectto_char(sysdate,’DY’)
fromdual;
18)HH或HH1212进制小时数
SQL>Selectto_char(sysdate,’HH’)
fromdual;
19)HH2424小时制
SQL>Selectto_char(sysdate,’HH24’)
fromdual;
20)MI分钟数(0-59)
SQL>Selectto_char(sysdate,’MI’)
fromdual;
21)SS秒数(0-59)
SQL>Selectto_char(sysdate,’SS’)
fromdual;
12.数据类型转换
1)TO_CHAR数字数据转换为字符串
selectto_char(8897)fromdual;
●
●实验结果
●疑难小结
●主要算法和程序清单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 实验