ORACLE第五次实验报告

ORACLE第五次实验报告

ID:40569220

大小:745.50 KB

页数:11页

时间:2019-08-04

ORACLE第五次实验报告_第1页
ORACLE第五次实验报告_第2页
ORACLE第五次实验报告_第3页
ORACLE第五次实验报告_第4页
ORACLE第五次实验报告_第5页
资源描述:

《ORACLE第五次实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验五实验内容:1、验证rownum与rowid的作用。包dbms_rowid.rowid_block_number(rowid)把rowid转换成页号(每一页的编号)。假如一个表有50行内容,如何提取表中的10-20行的内容?2、Oracle的序列。语法:CREATESEQUENCE序列名[INCREMENTBYn][STARTWITHn][{MAXVALUE/MINVALUEn

2、NOMAXVALUE}][{CYCLE

3、NOCYCLE}][{CACHEn

4、NOCACHE}]例子1:createsequences1INCREMENTby1STARTwith10MAXVALUE9999NOC

5、YCLE例子2:createtabletest_seq(c1intprimarykey,c2int)insertintotest_seqvalues(s1.nextval,1)selects1.currvalfromdual;注意:(1)第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENTBY值。(2)CURRVAL总是返回当前sequence的值,但是在第一次NEXTVAL,初始化之后才能使用CURRVAL,否则会出错。3、当用序列向表中的主健插入值,还会出现向198页所提到的Insert阻塞吗?请用实验验证。4、trunc和bitand的作用。5

6、、v$lock(存放事务的锁的信息)和v$transaction(存放事务信息)新建一个事务,查询v$lock和v$transaction来看该事务拥有锁的情况。6、选作:删除一个表中的重复行。实验步骤:一、验证rownum与rowid的作用。包dbms_rowid.rowid_block_number(rowid)把rowid转换成页号(每一页的编号)。进入Oracle并打开数据库,操作如下:创建一个表myemp,如下:并插入数据,如下:注:这里用到了SEQUENCE,必须先创建一个seq这个序列才能插入数据,具体关于序列的方法见下【二】题。再执行两次myemp表中就有14*4=56行了

7、,查询结果如下:………………………………………………………………1、验证rownum的作用1)由上可初步判定rownum就是行数/行号,但并非仅如此。再来看看他的特征,如下:原表中的前面四行结果如下:按照姓名排序的前四行,结果如下:结论:可知,只按照姓名排序后,rownum行的行号是以前的行号。运用子查询后前四行的结果如下:结论:可知,rownum是根据表记录输出的行号,与筛选语句、排序语句都无关所以当用子查询时等于生成了一个表于是就按照这张表从1开始排序了。2)用rownum进行查询的各种特点,如下:用符号(<、<=、!=)来进行查询,如下:这样的查询语句就只能运用以上的三个符号(<、<

8、=、!=)来进行查询,但是(>、>=、=、betweenand)这些符号是查询不出来结果的,或者说结果为0行。可是用子查询可以解决符号(>、>=、=)的查询,如下:1、验证rowid的作用Rowid是一种数据类型,唯一标识一条记录物理位置的一个id,基于64位编码的18个字符显示。并且存储在表中,可以从表中查询,但不支持插入,更新,删除它们的值。1)Rowed的查询情况如下:2)把rowid转换成页号(每一页的编号),如下:注:把每行换成页,方便按页进行选择,这可以进行分页的处理。3)把rowid转换成行号(每一行的编号),如下:…………………………注:rowid确定了每条记录是在Orac

9、le中的哪一个数据对象、数据文件、块、行上。ROWID的格式如下:  数据对象编号       文件编号       块编号           行编号  OOOOOO           FFF          BBBBBB   RRR32bit10bit22bit16bit由data_object_id#+rfile#+block#+row#组成,数据文件占用10个bytes的空间,所以每个表空间不能超过1023个数据文件。1、假如一个表有50行内容,如何提取表中的10-20行的内容?在表myemp中有56行数据,用betweenand来查询,如下:也可以用如下方法:注:这两种方法都

10、是用的子查询,而且第二种方法必须是子查询里是<=符号,外面的是>=。二、创建Oracle的序列,并使用序列和理解序列。1、创建序列,如createsquences1INCREMENTby1STARTwith10MAXVALUE9999NOCYCLE2、利用创建的序列seq,使其自动生成到表myemp中。3、深刻理解序列。(1)第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENTBY

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。