版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生实验报告册(理工类)ﻫ课程名称:大型数据库技术专业班级:12计算机科学与技术(1)学生学号:学生姓名:所属院部:计算机工程学院指导教师:陈爱萍2023——2015学年第2学期金陵科技学院教务处制实验报告书写规定实验报告原则上规定学生手写,规定书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体规定。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,涉及实验目的和规定;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体规定增长项目。填写注意事项(1)细致观测,及时、准确、如实记录。(2)准确说明,层次清楚。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完毕实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订规定实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称:Oracle数据库安装与配置实验学时:1同组学生姓名:实验地点:1316实验日期:2023/3/27实验成绩:批改教师:陈爱萍批改时间:实验1:Oracle数据库安装与配置一、实验目的和规定(1)掌握Oracle数据库服务器的安装与配置。(2)了解如何检查安装后的数据库服务器产品,验证安装是否成功。(3)掌握Oracle数据库服务器安装过程中出现的问题的解决方法。(4)完毕Oracle11g数据库客户端网路服务名的配置。(5)检查安装后的数据库服务器产品可用性。(6)解决Oracle数据库服务器安装过程中出现的问题。二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS7、ORACLE11g中文版三、实验环节(1)从Oracle官方网站下载与操作系统匹配的Oracle11g数据库服务器和客户机安装程序。(2)解压Oracle11g数据库服务器安装程序,进行数据库服务器软件的安装。(3)在安装数据库服务器的同时,创建一个名为BOOKSALES数据库。(4)安装完数据库服务器程序后,解压客户机程序,并进行客户机的安装。(5)安装完客户机程序后,启动客户机的“NetConfigurationAssistant”,进行本地NET服务名配置,将数据库服务器中的BOOKSALES数据库配置到客户端。(6)启动OEM管理工具,登录、查看、操作BOOKSALES数据库。(7)启动SQLPlus工具,分别以SYS用户和SYSTEM用户登录BOOKSALES数据库。四、问题解答及实验结果(2)解压Oracle11g数据库服务器安装程序,进行数据库服务器软件的安装。(3)在安装数据库服务器的同时,创建一个名为BOOKSALES数据库。(5)安装完客户机程序后,启动客户机的“NetConfigurationAssistant”,进行本地NET服务名配置,将数据库服务器中的BOOKSALES数据库配置到客户端。(7)启动SQLPlus工具,分别以SYS用户和SYSTEM用户登录BOOKSALES数据库。五、实验体会和收获实验项目名称:Oracle数据库物理存储结构管理实验学时:3同组学生姓名:实验地点:1316实验日期:2023/3/27实验成绩:批改教师:陈爱萍批改时间:实验2:Oracle数据库物理存储结构管理一、实验目的和规定(1)掌握Oracle数据库数据文献的管理。(2)掌握Oracle数据库控制文献的管理。(3)掌握Oracle数据库重做日记文献的管理。(4)掌握Oracle数据库归档管理。(5)完毕数据文献的管理操作,涉及数据文献的创建、修改、重命名、移植及查询等操作。(6)完毕控制文献的管理操作,涉及控制文献的添加、备份、删除以及查询操作。(7)完毕重做日记文献的管理操作,涉及重做日记文献组及其成员文献的添加、删除、查询等操作,以及重做日记文献的重命名、移植、日记切换等操作。(8)完毕数据库归档模式设立、归档途径设立。二、实验设备、环境ﻩ设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS7、ORACLE11g中文版三、实验环节(1)向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文献users02.dbf。(2)向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文献temp02.dbf。(3)向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文献user03.dbf,大小5M,每次扩展1M,最大容量为100M。(4)取消BOOKSALES数据库数据文献user03.dbf的自动扩展。(5)将BOOKSALES数据库数据文献users02.dbf更名为users002.dbf。(6)查询BOOKSALES数据库当前所有的数据文献的具体信息。(7)为BOOKSALES数据库添加一个多路复用的控制文献control03.ctl。(8)以二进制文献的形式备份BOOKSALES数据库的控制文献。(9)将BOOKSALES数据库的控制文献以文本方式备份到跟踪文献中,并查看备份的内容。(10)删除BOOKSALES数据库的控制文献control03.ctl。(11)查询BOOKSALES数据库当前所有控制文献信息。(12)向BOOKSALES数据库添加一个重做日记文献组(组号为4),包含一个成员文献undo04a.log,大小为4M。(13)向BOOKSALES数据库的重做日记组4中添加一个成员文献,名称为undo04b.log。(14)将BOOKSALES数据库的重做日记组4中所有成员文献移植到一个新的目录下。(15)查询BOOKSALES数据库中所有重做日记文献组的状态。(16)查询BOOKSALES数据库中所有重做日记文献成员的状态。(17)删除BOOKSALES数据库的重做日记组4中的成员文献undo04b.log。(18)删除BOOKSALES数据库的重做日记组4。(19)查看BOOKSALES数据库是否处在归档模式。(20)将BOOKSALES数据库设立为归档模式。(21)为BOOKSALES数据库设立3个归档目的,其中一个为强制归档目的。(22)对BOOKSALES数据库进行5次日记切换,查看归档日记信息。四、问题解答及实验结果(1)向BOOKSALES数据库的USERS表空间添加一个大小为10MB的数据文献users02.dbf。altertablespaceusersadddatafile'g:\booksales\users02.dbf'size10M;(2)向BOOKSALES数据库的TEMP表空间添加一个大小为10MB的临时数据文献temp02.dbf。altertablespacetempaddtempfile'g:\booksales\temp02.dbf'size10M;(3)向BOOKSALES数据库的USERS表空间中添加一个可以自动扩展的数据文献user03.dbf,大小5M,每次扩展1M,最大容量为100M。altertablespaceusersadddatafile'g:\booksales\user03.dbf'size5Mautoextendonnext1Mmaxsize100M;(4)取消BOOKSALES数据库数据文献user03.dbf的自动扩展。alterdatabasedatafile'g:\booksales\user03.dbf'autoextendoff;(5)将BOOKSALES数据库数据文献users02.dbf更名为users002.dbf。altertablespaceusersoffline;(6)查询BOOKSALES数据库当前所有的数据文献的具体信息。selecttablespace_name,file_namefromdba_data_files;(7)为BOOKSALES数据库添加一个多路复用的控制文献control03.ctl。(8)以二进制文献的形式备份BOOKSALES数据库的控制文献。alterdatabasebackupcontrolfileto'g:\booksales\control.bkp';(9)将BOOKSALES数据库的控制文献以文本方式备份到跟踪文献中,并查看备份的内容。alterdatabasebackupcontrolfiletotrace;(10)删除BOOKSALES数据库的控制文献control03.ctl。Altersystemsetcontrol_files='g:\booksales\CONTROL01.CTL','g:\booksales\CONTROL02.CTL'SCOPE=SPFILE;hostdelg:\booksales\CONTROL03.CTL;(11)查询BOOKSALES数据库当前所有控制文献信息。selectnamefromv$controlfile;(12)向BOOKSALES数据库添加一个重做日记文献组(组号为4),包含一个成员文献undo04a.log,大小为4M。alterdatabaseaddlogfilegroup4('g:\booksales\undo04a.log')size4M;(13)向BOOKSALES数据库的重做日记组4中添加一个成员文献,名称为undo04b.log。alterdatabaseaddlogfilemember'g:\booksales\undo04b.log'togroup4;(14)将BOOKSALES数据库的重做日记组4中所有成员文献移植到一个新的目录下。hostmoveg:\booksales\undo04a.log'g:booksales\wjw\undo04a.loghostmoveg:\booksales\undo04b.log'g:booksales\wjw\undo04b.logalterdatabaserenamefile'g:\booksales\undo04a.log','g:\booksales\undo04b.log'to'g:booksales\wjw\undo04a.log','g:\booksales\wjw\undo04b.log;'(15)查询BOOKSALES数据库中所有重做日记文献组的状态。selectgroup#,sequence#,members,archived,statusfromv$log;(16)查询BOOKSALES数据库中所有重做日记文献成员的状态。selectgroup#,status,memberfromv$logfile;(17)删除BOOKSALES数据库的重做日记组4中的成员文献undo04b.log。alterdatabasedroplogfilemember'g:\booksales\wjw\undo04b.log';(18)删除BOOKSALES数据库的重做日记组4。alterdatabasedroplogfilegroup4;(19)查看BOOKSALES数据库是否处在归档模式。archieveloglist;(20)将BOOKSALES数据库设立为归档模式。selectname,valuefromv$parameterwherename='db_recovery_file_dest';shutdownimmediatestartupmountalterdatabasearchivelog;alterdatabaseopen(21)为BOOKSALES数据库设立3个归档目的,其中一个为强制归档目的。altersystemsetlog_archive_dest_1='location=g:\booksales\archivemandatory';altersystemsetlog_archive_dest_2='location=f:\booksales\archive';altersystemsetlog_archive_dest_3='service=standby1';(22)对BOOKSALES数据库进行5次日记切换,查看归档日记信息。commit;altersystemswitchlogfile;altersystemswitchlogfile;五、实验体会和收获实验项目名称:Oracle数据库逻辑存储结构管理实验学时:4同组学生姓名:实验地点:1316实验日期:2023/5/8实验成绩:批改教师:陈爱萍批改时间:实验3Oracle数据库逻辑存储结构管理一、实验目的和规定(1)掌握Oracle数据库表空间的管理。(2)掌握数据库表空间不同状态时对数据操作的影响。(3)分别创建永久性表空间、临时性表空间、撤消表空间。(4)完毕表空间的管理操作,涉及修改表空间大小、修改表空间的可用性、修改表空间的读写、表空间的备份、表空间信息查询、删除表空间。二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS7、ORACLE11g中文版三、实验环节(1)为BOOKSALES数据库创建一个名为BOOKTBS1的永久性表空间,区采用自动扩展方式,段采用自动管理方式。(2)为BOOKSALES数据库创建一个名为BOOKTBS2的永久性表空间,区采用定制分派,每次分派大小为1M,段采用手动管理方式。(3)为BOOKSALES数据库创建一个临时表空间TEMP02。(4)将BOOKSALES数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。(5)为BOOKSALES数据库创建一个名为UNDO02的撤消表空间,并设立为当前数据库的在线撤消表空间。(6)为BOOKSALES数据库的表空间BOOKTBS1添加一个大小为50M的数据文献,以改变该表空间的大小。(7)将BOOKSALES数据库的表空间BOOKTBS2的数据文献修改为可以自动扩展,每次扩展5M,最大容量为100M。(8)创建一个名为test的表,存储于BOOKTBS1表空间中,向表中插入一条记录。CREATETABLEtest(IDNUMBERPRIMARYKEY,nameCHAR(20))TABLESPACEbooktbs1;INSERTINTOtestVALUES(1,'FIRSTROW');(9)将BOOKSALES数据库的BOOKTBS1表空间设立为脱机状态,测试该表空间是否可以使用。(10)将BOOKSALES数据库的BOOKTBS1表空间设立为联机状态,测试该表空间是否可以使用。(11)将BOOKSALES数据库的BOOKTBS1表空间设立为只读状态,测试该表空间是否可以进行数据写入操作。(12)将BOOKSALES数据库的BOOKTBS1表空间设立为读写状态,测试该表空间是否可以进行数据读写操作。(13)将BOOKSALES数据库的BOOKTBS1设立为数据库默认表空间,将临时表空间组TEMPGROUP设立为数据库的默认临时表空间。(14)分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。(15)查询BOOKSALES数据库所有表空间及其状态信息。(16)查询BOOKSALES数据库所有表空间及其数据文献信息。(17)删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文献。四、问题解答及实验结果(1)为BOOKSALES数据库创建一个名为BOOKTBS1的永久性表空间,区采用自动扩展方式,段采用自动管理方式。createtablespaceBOOKTBS1datafile'g:\booksales\BOOKTBS1.dbf'size50M;(2)为BOOKSALES数据库创建一个名为BOOKTBS2的永久性表空间,区采用定制分派,每次分派大小为1M,段采用手动管理方式。createtablespaceBOOKTBS2datafile'g:\booksales\BOOKTBS2.dbf'size50Mextentmanagementlocaluniformsize1Msegmentspacemanagementmanual;(3)为BOOKSALES数据库创建一个临时表空间TEMP02。createtemporarytablespaceTEMP02tempfile'g:\booksales\TEMP02.dbf'size20Mextentmanagementlocaluniformsize15M;(4)将BOOKSALES数据库临时表空间TEMP和TEMP02都放入临时表空间组TEMPGROUP中。createtemporarytablespaceTEMPtempfile'g:\booksales\TEMP.dbf'size20Mextentmanagementlocaluniformsize15MtablespacegroupTEMPGROUP;altertablespaceTEMP02tablespacegroupTEMPGROUP;(5)为BOOKSALES数据库创建一个名为UNDO02的撤消表空间,并设立为当前数据库的在线撤消表空间。createundotablespaceUNDO02datafile'g:\booksales\UNDO02.dbf'size20M;alterdatabasedefaulttemporarytablespaceTEMPGROUP(6)为BOOKSALES数据库的表空间BOOKTBS1添加一个大小为50M的数据文献,以改变该表空间的大小。altertablespaceBOOKTBS1adddatafile'g:\booksales\BOOK.dbf'size50M;(7)将BOOKSALES数据库的表空间BOOKTBS2的数据文献修改为可以自动扩展,每次扩展5M,最大容量为100M。alterdatabasedatafile'g:\booksales\BOOKTBS2.dbf'autoextendonnext5Mmaxsize100M(8)创建一个名为test的表,存储于BOOKTBS1表空间中,向表中插入一条记录。CREATETABLEtest(IDNUMBERPRIMARYKEY,nameCHAR(20))TABLESPACEbooktbs1;INSERTINTOtestVALUES(1,'FIRSTROW');(9)将BOOKSALES数据库的BOOKTBS1表空间设立为脱机状态,测试该表空间是否可以使用。selectname,valuefromv$parameterwherename='db_recovery_file_dest';shutdownimmediatestartupmountalterdatabasearchivelog;alterdatabaseopen;alterdatabasedatafile'g:\booksales\BOOKTBS1.dbf'OFFLINE;(10)将BOOKSALES数据库的BOOKTBS1表空间设立为联机状态,测试该表空间是否可以使用。仍需处在归档模式下,并且需完毕介质恢复recoverdatafile'g:\booksales\BOOKTBS1.dbf';alterdatabasedatafile'g:\booksales\BOOKTBS1.dbf'ONLINE;(11)将BOOKSALES数据库的BOOKTBS1表空间设立为只读状态,测试该表空间是否可以进行数据写入操作。altertablespaceBOOKTBS1readonly;(12)将BOOKSALES数据库的BOOKTBS1表空间设立为读写状态,测试该表空间是否可以进行数据读写操作。altertablespaceBOOKTBS1readwrite;(13)将BOOKSALES数据库的BOOKTBS1设立为数据库默认表空间,将临时表空间组TEMPGROUP设立为数据库的默认临时表空间。alterdatabasedefaulttablespaceBOOKTBS1;alterdatabasedefaulttemporarytablespaceTEMPGROUP;分别备份BOOKSALES数据库的USERS和BOOKTBS1、BOOKTBS3三个表空间。altertablespaceusersbeginbackup;altertablespaceusersendbackup;altertablespacebooktbs1beginbackup;altertablespacebooktbs1endbackup;altertablespacebooktbs2beginbackup;altertablespacebooktbs2endbackup;(15)查询BOOKSALES数据库所有表空间及其状态信息。selecttablespace_name,extent_management,allocation_typefromdba_tablespaces;(16)查询BOOKSALES数据库所有表空间及其数据文献信息。selecttablespace_name,file_namefromdba_data_files;(17)删除BOOKSALES数据库BOOKTBS2表空间及其所有内容,同时删除操作系统上的数据文献。droptablespaceBOOKTBS2includingcontentsanddatafiles;五、实验体会和收获实验项目名称:Oracle数据库模式对象管理实验学时:4同组学生姓名:实验地点:1316实验日期:2023/5/15实验成绩:批改教师:陈爱萍批改时间:实验4视图、索引和完整性等一、实验目的和规定1、了解视图的基本概念、种类及各自的特点与作用。2、理解索引的基本概念及其优缺陷。3、理解修改数据时索引的开销。4、理解数据完整性的概念及分类。5、理解同义词和序列的基本概念。6、掌握在OEM中创建视图、索引、实体完整性、域完整性和参照完整性以及同义词、序列的方法。7、掌握用PL/SQL语言创建视图、索引、各种约束、同义词和序列的方法。二、实验设备、环境设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS7、ORACLE11g中文版三、实验环节(1)打开SQLPlus,以system用户登录BOOKSALES数据库。(2)按下列方式创建一个用户bs,并给该用户授权。CREATEUSERbsIDENTIFIEDBYbsDEFAULTTABLESPACEUSERS;GRANTRESOURCE,CONNECT,CREATEVIEWTObs;(3)使用bs用户登录数据库,并进行下面的相关操作。(4)根据图书销售系统关系模式设计,创建下列各表。表1CUSTOMERS字段名数据类型长度约束说明customer_idNUMBER4PRIMARYKEY客户编号nameCHAR20NOTNULL客户名称phoneVARCHAR250NOTNULL电话emailVARCHAR250EmailaddressVARCHAR2200地址codeVARCHAR210邮政编码表2PUBLISHERS字段名数据类型长度约束说明publisher_idNUMBER2PRIMARYKEY出版社号nameVARCHAR250出版社名contactCHAR10联系人phoneVARCHAR250电话表3BOOKS字段名数据类型长度约束说明ISBNVARCHAR250PRIMARYKEY图书号titleVARCHAR250图书名authorVARCHAR250作者pubdateDATE出版日期publisher_idNUMBER2FOREIGNKEY出版社IDcostNUMBER6,2批发(大于10本)价格retailNUMBER6,2零售价格categoryVARCHAR250图书类型表4ORDERS字段名数据类型长度约束说明order_idNUMBER4PRIMARYKEY订单号customer_idNUMBER4FOREIGNKEY顾客号orderdateDATENOTNULL订货日期shipdateDATE发货日期shipaddressVARCHAR2200发货地址shipcodeVARCHAR210发货邮政编码表5ORDERITEM字段名数据类型长度约束说明order_idNUMBER4FOREIGNKEYPRIMARYKEY订单号item_idNUMBER4订单明细号ISBNVARCHAR250NOTNULL图书编号quantityNUMBER4图书数量表6PROMOTION字段名数据类型长度约束说明gift_idNUMBER2礼品编号nameCHAR20PRIMARYKEY礼品名称minretailVARCHAR250图书最低价maxretailCHAR10图书最高价(5)在CUSTOMERS表的name列上创建一个B-树索引,规定索引值为大写字母。(6)在BOOKS表的title列上创建一个非唯一性索引。(7)在ORDERS表的ISBN列上创建一个唯一性索引。(8)创建一个视图customers_book,描述客户与订单的具体信息,涉及客户编号、客户名单、订购图书的ISBN、图书名称、图书数量、订货日期、发货日期等。(9)创建一个视图customers_gift,描述客户获得礼品的信息,涉及客户名称、订购图书名称、图书总价、礼品名称。(10)定义序列seq_customers,产生客户编号,序列起始值为1,步长为1,不缓存,不循环。(11)定义序列seq_orders,产生订单编号,序列起始值为1000,步长为1,不缓存,不循环。(12)定义序列seq_orderitem,产生订单编号,序列起始值为1,步长为1,不缓存,不循环。四、问题解答及实验结果(1)打开SQLPlus,以system用户登录BOOKSALES数据库。 Sqlplussystem/B513b513(2)按下列方式创建一个用户bs,并给该用户授权。createuserwjwidentifiedbywjwdefaulttablespaceusers;grantresource,connect,createviewtowjw;(3)使用bs用户登录数据库,并进行下面的相关操作。connectwjw/wjw(4)根据图书销售系统关系模式设计,创建下列各表。表1CUSTOMERS字段名数据类型长度约束说明customer_idNUMBER4PRIMARYKEY客户编号nameCHAR20NOTNULL客户名称phoneVARCHAR250NOTNULL电话emailVARCHAR250EmailaddressVARCHAR2200地址codeVARCHAR210邮政编码createtablecustomers(customer_idnumber(4)primarykey,namechar(20)notnull,phonevarchar(50)notnull,emailvarchar(50),addressvarchar(200),codevarchar(10));表2PUBLISHERS字段名数据类型长度约束说明publisher_idNUMBER2PRIMARYKEY出版社号nameVARCHAR250出版社名contactCHAR10联系人phoneVARCHAR250电话createtablepublishers(publisher_idnumber(2)primarykey,namevarchar(50),contactchar(10),phonevarchar(50));表3BOOKS字段名数据类型长度约束说明ISBNVARCHAR250PRIMARYKEY图书号titleVARCHAR250图书名authorVARCHAR250作者pubdateDATE出版日期publisher_idNUMBER2FOREIGNKEY出版社IDcostNUMBER6,2批发(大于10本)价格retailNUMBER6,2零售价格categoryVARCHAR250图书类型createtablebooks(ISBNvarchar(50)primarykey,titlevarchar(50),authorvarchar(50),pubdateDATE,publisher_idnumber(2),costnumber(6,2),retailnumber(6,2),categoryvarchar(50),foreignkey(publisher_id)referencespublishers(publisher_id));表4ORDERS字段名数据类型长度约束说明order_idNUMBER4PRIMARYKEY订单号customer_idNUMBER4FOREIGNKEY顾客号orderdateDATENOTNULL订货日期shipdateDATE发货日期shipaddressVARCHAR2200发货地址shipcodeVARCHAR210发货邮政编码createtableorders(order_idnumber(4)primarykey,customer_idnumber(4)referencescustomers(customer_id),orderdatear(200),DATEnotnull,shipdateDATE,shipaddressvarchshipcodevarchar(10));表5ORDERITEM字段名数据类型长度约束说明order_idNUMBER4FOREIGNKEYPRIMARYKEY订单号item_idNUMBER4订单明细号ISBNVARCHAR250NOTNULL图书编号quantityNUMBER4图书数量createtableorderitem(order_idnumber(4)referencesorders(order_id),item_idnumber(4),ISBNvarchar(50)notnull,quantitynumber(4),primarykey(order_id,item_id));表6PROMOTION字段名数据类型长度约束说明gift_idNUMBER2礼品编号nameCHAR20PRIMARYKEY礼品名称minretailVARCHAR250图书最低价maxretailCHAR10图书最高价createtablepromotion(gift_idnumber(2),namechar(20)primarykey,minretailvarchar(50),maxretailchar(10));(5)在CUSTOMERS表的name列上创建一个B-树索引,规定索引值为大写字母。createindexcustomer_name_indexoncustomers(upper(name))tablespaceusers;(6)在BOOKS表的title列上创建一个非唯一性索引。createindexbooks_title_indexonbooks(title)tablespaceusers(7)在ORDERITEM表的ISBN列上创建一个唯一性索引。 createuniqueindexorders_isbn_indexonorderitem(ISBN)tablespaceusers(8)创建一个视图customers_book,描述客户与订单的具体信息,涉及客户编号、客户名单、订购图书的ISBN、图书名称、图书数量、订货日期、发货日期等。CREATEVIEWcustomers_book(客户编号,客户名称,订购图书的ISBN,图书名称,图书数量,订货日期,发货日期)ASSELECTc.customer_id,c.name,o.ISBN,b.title,o.quantity,O.orderdate,O.shipdateFROMCUSTOMERSc,ORDERITEMo,ORDERSO,BOOKSb;创建一个视图customers_gift,描述客户获得礼品的信息,涉及客户名称、订购图书名称、图书总价、礼品名称。Createviewcustomers_giftasselectcustomers.name,books.title,(book.retail*orderitem.quantity)as‘图书总价’fromcustomers,orderitem,books,promotion,orderswhereorders.customer_id=customers.customer_idandorder_id=orderitem.order_idandorderitem.ISBN=books.ISBN;(10)定义序列seq_customers,产生客户编号,序列起始值为1,步长为1,不缓存,不循环。createsequenceseq_customersstartwith1incrementby1nocyclenocache;定义序列seq_orders,产生订单编号,序列起始值为1000,步长为1,不缓存,不循环。CREATESEQUENCEseq_ordersSTARTWITH1000INCREMENTBY1NOCACHENOCYCLE;(12)定义序列seq_orderitem,产生订单编号,序列起始值为1,步长为1,不缓存,不循环。CREATESEQUENCEseq_orderitemSTARTWITH1INCREMENTBY1NOCACHENOCYCLE;五、实验体会和收获实验项目名称:SQL语句应用实验学时:2同组学生姓名:实验地点:1316实验日期:2023/5/22实验成绩:批改教师:陈爱萍批改时间:实验5:SQL语句应用1.实验目的(1)掌握数据的插入(INSERT)、修改(UPDATE)和删除(DELETE)操作。(2)掌握不同类型的数据查询(SELECT)操作。2.实验规定(1)运用INSERT语句向图书销售系统表中插入数据。(2)运用UPDATE语句修改图书销售系统表中的数据。(3)运用DELETE语句删除图书销售系统表中的数据。(4)运用SELECT语句实现对图书销售系统数据的有条件查询、分组查询、连接查询、子查询等。3.实验环节(1)以bs用户登录BOOKSALES数据库,将下列表中的数据插入到数据库的相应表中。表1CUSTOMERScustomer_idnamephoneemailaddressCode1(序列生成)王牧83823422北京1100102(序列生成)李青83824566大连116023表2PUBLISHERSpublisher_idnamecontactPhone1电子工业出版社张芳562312342机械工业出版社孙翔89673456表3BOOKSISBNtitleauthorpubdatepublisher_idcostretailcategory978-7-121-18619-8文化基础王澜2023-1-123528管理978-7-122-18619-8Oracle孙风栋2023-2-114032计算机表4ORDERSorder_idcustomer_idorderdateshipdateshipaddressshipcode1000(序列生成)12023-2-12023-2-5大连1160231001(序列生成)22023-3-12023-3-10大连116023表5ORDERITEMorder_iditem_idISBNQuantity10001978-7-121-18619-8510002978-7-122-18619-82010011978-7-121-18619-815表6PROMOTIONgift_idnameminretailmaxretail1签字笔1001502笔记本1503003保温杯300500(2)将ISBN为978-7-121-18619-8的图书的零售价格(retail)修改为30。(3)将订单号为1000的订单的发货日期修改为“2023-2-2”。(4)查询BOOKS表中包含的所有图书列表。(5)列出BOOKS表中有图书类型非空的图书书名。(6)列出BOOKS表中每本书的书名和出版日期。对pubdate字段使用PublicationDate列标题。(7)列出CUSTOMERS表中每一个客户的客户号以及他们所在的地址。(8)创建一个包含各个出版社的名称、联系人以及出版社电话号码的列表。其中,联系人的列在显示的结果中重命名为ContactPerson。(9)查询下达了订单的每一个客户的客户号。(10)查询2023年3月1日之后发货的订单。(11)查询居住在北京或大连的客户,将结果按姓名的升序排列。(12)列出姓“王”的作者编写的所有图书信息,并将结果按姓名降序排序。(13)查询“儿童”类和“烹饪”类的所有图书。(14)查询书名的第二个字母是“A”、第四个字母是“N”的图书信息。(15)查询电子工业出版社在2023年出版的所有“计算机”类图书的名称。(16)查询图书名称、出版社名称、出版社联系人的名称、EMAIL和电话号码。(17)查询当前还没有发货的订单信息及下达订单的用户名,查询结果按下达订单日期排序。(18)查询已经购买了“计算机”类图书的所有人的客户号和姓名。(19)查询“王牧”购买的图书的ISBN以及书名。(20)查询订购图书“Oracle数据库基础”的客户将收到什么样的礼品。(21)拟定客户“张扬”订购的图书的作者。(22)查询CUSTOMERS表中的每一个客户所下达的订单数量。(23)查询价格低于同一种类中其它图书的平均价格的图书的信息。(24)查询每个出版社出版图书的平均价格、最高价格、最低价格。(25)记录每个客户购买图书的数量及总价钱。(26)查询比1号订单中图书数量多的其它订单信息。(27)查询所以客户及其订购图书的信息。(28)查询没有订购任何图书的客户信息。(29)查询订购金额最高的客户信息。(30)查询名为“赵敏”的客户订购图书的订单信息、订单明细。四、问题解答及实验结果(1)以bs用户登录BOOKSALES数据库,将下列表中的数据插入到数据库的相应表中。表1CUSTOMERScustomer_idnamephoneemailaddressCode2(序列生成)王牧83823422北京1100103(序列生成)李青83824566大连116023insertintocustomers(customer_id,name,phone,email,address,code)values(seq_customers.nextval,'王牧','83823422','','北京','110010');insertintocustomers(customer_id,name,phone,email,address,code)values(seq_customers.nextval,'李青','83824566','','大连','116023');表2PUBLISHERSpublisher_idnamecontactPhone1电子工业出版社张芳562312342机械工业出版社孙翔89673456insertintopublishersvalues('1','电子工业出版社','张芳','56231234');insertintopublishersvalues('2','机械工业出版社','孙翔','89673456');表3BOOKSISBNtitleauthorpubdatepublisher_idcostretailcategory978-7-121-18619-8文化基础王澜2023-1-123528管理978-7-122-18619-8Oracle孙风栋2023-2-114032计算机insertintobooksvalues('978-7-121-18619-8','文化基础','王斓',to_date('2023-1-1','yyyy-mm-dd'),2,35,28,'管理');insertintobooksvalues('978-7-122-18619-8','Oracle','孙风栋',to_date('2023-2-1','yyyy-mm-dd'),1,40,32,'计算机');表4ORDERSorder_idcustomer_idorderdateshipdateshipaddressshipcode1001(序列生成)22023-2-12023-2-5大连1160231002(序列生成)32023-3-12023-3-10大连116023insertintoorders(order_id,customer_id,orderdate,shipdate,shipaddress,shipcode)values(seq_orders.nextval,2,to_date('2023-2-1','yyyy-mm-dd'),to_date('2023-2-5','yyyy-mm-dd'),'大连','116023');insertintoorders(order_id,customer_id,orderdate,shipdate,shipaddress,shipcode)values(seq_orders.nextval,3,to_date('2023-3-1','yyyy-mm-dd'),to_date('2023-3-10','yyyy-mm-dd'),'大连','116023');表5ORDERITEMorder_iditem_idISBNQuantity10011978-7-121-18619-8510012978-7-122-18619-82010021978-7-121-18619-815insertintoorderitem(order_id,item_id,ISBN,quantity)values(1001,1,'978-7-121-18619-8',5);insertintoorderitem(order_id,item_id,ISBN,quantity)values(1001,2,'978-7-122-18619-8',20);insertintoorderitem(order_id,item_id,ISBN,quantity)values(1002,1,'978-7-121-18619-8',15);表6PROMOTIONgift_idnameminretailmaxretail1签字笔1001502笔记本1503003保温杯300500insertintopromotion(gift_id,name,minretail,maxretail)values(1,'签字笔',100,150);insertintopromotion(gift_id,name,minretail,maxretail)values(2,'笔记本',150,300);;insertintopromotion(gift_id,name,minretail,maxretail)values(3,'保温杯',300,500);(2)将ISBN为978-7-121-18619-8的图书的零售价格(retail)修改为30。updatebookssetretail=30whereISBN='978-7-121-18619-8';(3)将订单号为1000的订单的发货日期修改为“2023-2-2”。updateorderssetshipdate=to_date('2023-2-2','yyyy-mm-dd')whereorder_id=1000;(4)查询BOOKS表中包含的所有图书列表。select*frombooks;(5)列出BOOKS表中有图书类型非空的图书书名。selecttitlefrombookswherecategory!=null;(6)列出BOOKS表中每本书的书名和出版日期。对pubdate字段使用PublicationDate列标题。selecttitle,pubdateasPublicationDatefrombooks;(7)列出CUSTOMERS表中每一个客户的客户号以及他们所在的地址。selectcustomer_id,addressfromcustomer;创建一个包含各个出版社的名称、联系人以及出版社电话号码的列表。其中,联系人的列在显示的结果中重命名为ContactPerson。selectname,contactasContactPerson,phonefrompublishers;(9)查询下达了订单的每一个客户的客户号。selectcustomer.customer_idfromcustomerwherecustomer_idin(selectcustomer_idfromorders);(10)查询2023年3月1日之后发货的订单。select*fromorderswhereshipdate>to_date('2023-3-1','yyyy-mm-dd');(11)查询居住在北京或大连的客户,将结果按姓名的升序排列。select*fromcustomerwhereaddress='大连'oraddress='北京'orderbynameasc;(12)列出姓“王”的作者编写的所有图书信息,并将结果按姓名降序排序。select*frombookswhereauthorlike'%王%'orderbyauthordesc;(13)查询“儿童”类和“烹饪”类的所有图书。select*frombookswherecategory='儿童'orcategory='烹饪';(14)查询书名的第二个字母是“A”、第四个字母是“N”的图书信息。select*frombookswheretitlelike'%_A_N%';(15)查询电子工业出版社在2023年出版的所有“计算机”类图书的名称。selecttitlefrombookswherepublisher_id=(selectpublisher_idfrompublisherswherename='电子工业出版社')andextract(yearfrompubdate)='2023';(16)查询图书名称、出版社名称、出版社联系人的名称、EMAIL和电话号码。selectbooks.title,publishers.name,publishers.contact,publishers.phonefrombooks,publisherswherebooks.publisher_id=publishers.publisher_id;(17)查询当前还没有发货的订单信息及下达订单的用户名,查询结果按下达订单日期排序。selectorders.order_id,orders.orderdate,orders.shipaddress,orders.shipcode,customer.namefromorders,customerwherecustomer.customer_id=orders.customer_idandorders.shipdate=null;(18)查询已经购买了“计算机”类图书的所有人的客户号和姓名。selectcustomer.customer_id,customer.namefromcustomer,orders,orderitem,bookswherecustomer.customer_id=orders.customer_idandorders.order_id=orderitem.order_idandorderitem.ISBN=books.ISBNandbooks.category='计算机';(19)查询“王牧”购买的图书的ISBN以及书名。selectbooks.ISBN,books.titlefrombooks,customers,orders,orderitemwherecustomers.customer_id=orders.customer_idandorders.order_id=orderitem.order_idandorderitem.ISBN=books.ISBNandcustomers.name='王牧';(21)拟定客户“张扬”订购的图书的作者。selectbooks.authorfrombooks,customers,orders,orderitemwh='张扬'andcustomers.customer_id=orders.customer_idandorders.order_id=orderitem.order_idandorderitem.ISBN=books.ISBN;查询结果为空,查询网牧订购的图书,结果如下:(22)查询CUSTOMERS表中的每一个客户所下达的订单数量。selectcustomer_id,count(*)fromordersgroupbycustomer_id;(23)查询价格低于同一种类中其它图书的平均价格的图书的信息。functionfunc(p_categorybooks.category%type)returnnumberascursorc_bookisselectretailfrombookswherecategory=p_category;v_sumnumber(6,2):=0;v_countnumber(6):=0;beginforvinc_bookloopv_count:=v_count+1;v_sum:=v_sum+v.retail;endloop;returnv_sum/v_count;end;declarep_catebooks.category%type;beginp_cate:=&x;select*frombookswherecost<func(p_cate);(24)查询每个出版社出版图书的平均价格、最高价格、最低价格。selectcategory,min(retail),max(retail),avg(retail)frombooksgroupbycategory(25)记录每个客户购买图书的数量及总价钱。declarecursorc_customeris(selectcustomer_idfromcustomers);v_customerc_customer%rowtype;v_total_costnumber;v_total_quantitynumber;v_quantityorderitem.quantity%type;v_ISBNbooks.ISBN%type;v_pricebooks.retail%type;Beginopenc_customer;Loopfetchc_customerintov_customer;exitwhenc_customer%notfound;forv_orderin(selectorderitem.order_idfromorderitem,orderswhereorderitem.order_id=orders.order_idandorders.customer_id=v_customer.customer_id)loopforv_itemin(selectquantity,ISBNfromorderitemwhereorderitem.order_id=v_order.order_id)loop if(v_item.quantity>10)thenﻩselectcostintov_pricefrombooks,orderitemwherebooks.ISBN=v_item.ISBN; elseifﻩselectretailintov_pricefrombooks,orderitemwherebooks.ISBN=v_item.ISBN;ﻩv_total_cost:=v_total+v_price*v_item.quantity; v_total_quantity:=total_quantity+v_item.quantity; endif;endloop;endloop;dbms_output.put_line(v_customer.customer_id||''||v_total_quantity||''||v_total_cost);v_total_cost:=0;v_total_quantity:=0;endloop;closec_customer;end;(26)查询比1号订单中图书数量多的其它订单信息。selectorders.order_id,orders.customer_id,orderitem.quantityfromorders,orderitemwherequantity>(selectquantityfromorderitemwhereorder_id=1001anditem_id=1)(27)查询所以客户及其订购图书的信息。select*fromcustomers,orderswherecustomers.customer_id=orders.customer_id(28)查询没有订购任何图书的客户信息。select*fromcustomerswherecustomer_idnotin(selectcustomer_idfromorders)查询订购金额最高的客户信息。selectcustoms.cudtomer_id,customers.name,customers.phone,customers.email,customers.address,customers.codefromcustomers,orders,orderitemwherecustomers.customer_id=orders.customer_idandorders.order_id=orderitem.order_idandorderitem.quantity(selectmax(quantity)fromorderitem);(30)查询名为“赵敏”的客户订购图书的订单信息、订单明细。select*fromorders,orderitem,customerswhereorders.customer_id=customers.customer_idandcustomers.name='赵敏'五、实验体会和收获实验项目名称:PL/SQL程序设计实验学时:4同组学生姓名:实验地点:1316实验日期:2023/5/29实验成绩:批改教师:陈爱萍批改时间:实验6:PL/SQL程序设计一、实验目的和规定(1)掌握PL/SQL程序开发方法。(2)掌握函数的创建与调用。(3)掌握存储过程的创建与调用。(4)掌握触发器的创建与应用。(5)掌握包的创建与应用。(6)根据图书销售系统业务规定创建实现特定功能的函数。(7)根据图书销售系统业务规定创建实现特定功能的存储过程。(8)根据图书销售系统业务规定创建实现特定功能的触发器。(9)根据图书销售系统业务规定将图书销售系统相关的函数、存储过程封装到包里。二、实验设备、环境ﻩ设备:奔腾Ⅳ或奔腾Ⅳ以上计算机环境:WINDOWS7、ORACLE11g中文版三、实验环节以bs用户登录BOOKSALES数据库,运用PL/SQL程序编写下列功能模块。(1)创建一个函数,以客户号为参数,返回该客户订购图书的价格总额。(2)创建一个函数,以订单号为参数,返回该订单订购图书的价格总额。(3)创建一个函数,以出版社名为参数,返回该出版社出版的图书的平均价格。(4)创建一个函数,以客户号为参数,返回该客户可以获得的礼品名称。(5)创建一个函数,以图书号为参数,记录该图书被订购的总数量。(6)创建一个存储过程,输出不同类型图书的数量、平均价格。(7)创建一个存储过程,以客户号为参数,输出该客户订购的所有图书的名称与数量。(8)创建一个存储过程,以订单号为单数,输出该订单中所有图书的名称、单价、数量。(9)创建一个存储过程,以出版社名为参数,输出该出版社出版的所有图书的名称、ISBN、批发价格、零售价格信息。(10)创建一个存储过程,输出每个客户订购的图书的数量、价格总额。(11)创建一个存储过程,输出销售数量前3名的图书的信息,及销售名次。(12)创建一个存储过程,输出订购图书数量最多的客户的信息,及订购图书的数量。四、问题解答及实验结果(1)创建一个函数,以客户号为参数,返回该客户订购图书的价格总额。createorreplacefunctionfunc(p_customer_idcustomers.customer_id%type)returnnumberascursorc_orderis(selectorderitem.order_idfromorderitem,orderswhereorderitem.order_id=orders.order_idandorders.customer_id=p_customer_id);v_orderc_order%rowtype;v_totalnumber;v_quantityorderitem.quantity%type;v_ISBNbooks.ISBN%type;v_pricebooks.retail%type;beginﻩopenc_order;loopfetchc_orderintov_order;exitwhenc_order%notfound;forv_itemin(selectquantity,ISBNfromorderitemwhereorderitem.order_id=v_order.order_id)loopifv_item.quantity>10thenselectcostintov_pricefrombooks,orderitemwherebooks.ISBN=v_item.ISBN;elseifselectretailintov_pricefrombooks,orderitemwherebooks.ISBN=v_item.ISBN;v_total:=v_total+v_price*vitem.quantity;endif;endloop;endloop;closec_order;returnv_total;end;setserveroutputondeclaretotal_costbooks.cost%type;customernumber;begincustomer:=&x;total_cost=func(costomer);dbms_output.put_line(customer||''||total_cost);end;(2)创建一个函数,以订单号为参数,返回该订单订购图书的价格总额。createorreplacefunctionfunc(p_order_idcustomers.orderr_id%type)returnnumberascursorc_orderisselectISBN,quantityfromorderitemwhereorder_id=p_order_id;v_totalnumber:=0;v_quantityorderitem.quantity%type;v_pricebooks.retail%type;v_ISBNbooks.ISBN%type;beginforvinc_orderloopifv_quantity>10thenselectcostintov_pricefrombooks,orderitemwherebooks.ISBN=v_ISBN;elseifselectretailintov_pricefrombooks,orderitemwherebooks.ISBN=v_ISBN;endif;v_total:=v_price*v_quantity;endif;endloop;returnv_total;end;setserveroutputondeclaretotalbooks.cost%type;v_order_id=orderitem.order_id%type;beginpublisher_name:=&x;avg_price:=func(publisher_name);dbms_output.put_line(publisher_name||''||avg_price);end;(3)创建一个函数,以出版社名为参数,返回该出版社出版的图书的平均价格。createorreplacefun
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械行业背景及营销模式课件
- 如何开展幼小衔接教研活动
- 【初中数学课件】根与系数关系探索课件
- 《人力资源之根本》课件
- 户口迁入声明
- 幸福瞬间摄影合约
- 家用豪华台式机订购单
- 安全生产维护人民群众根本利益
- 【初中数学课件】在实验中寻找规律课件
- 上医治未病预防
- 牙体牙髓学课件 五年制牙髓病
- 电工仪表及测量课件
- 工厂供配电系统的动力方案及选型原则
- 国开电大本科《行政法与行政诉讼法》期末考试案例分析题库2023春期版
- 管道热损失的计算方法
- 智能控制导论智慧树知到答案章节测试2023年昆明理工大学
- 新产品APQP开发计划表
- 施工现场临时用电安全技术规范试题
- 九招致胜课件完整版
- (岗位职责)混凝土搅拌站的职责总汇
- 监理质量安全红线管理监理实施细则
评论
0/150
提交评论