版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生实验报告册〔理工类〕课程名称:大型数据库技术专业班级: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客户名称phoneVARCHAR250NOTNULLemailVARCHAR250EmailaddressVARCHAR2200地址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客户名称phoneVARCHAR250NOTNULLemailVARCHAR250EmailaddressVARCHAR2200地址codeVARCHAR210邮政编码createtablecustomers(customer_idnumber(4)primarykey,namechar(20)notnull,phonevarchar(50)notnull,emailvarchar(50),addressvarchar(200),codevarchar(10));表2PUBLISHERS字段名数据类型长度约束说明publisher_idNUMBER2PRIMARYKEY出版社号nameVARCHAR250出版社名contactCHAR10联系人phoneVARCHAR250createtablepublishers(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,,o.ISBN,b.title,o.quantity,O.orderdate,O.shipdateFROMCUSTOMERSc,ORDERITEMo,ORDERSO,BOOKSb;创立一个视图customers_gift,描述客户获得礼品的信息,包括客户名称、订购图书名称、图书总价、礼品名称。Createviewcustomers_giftasselect,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〔序列生成〕王牧83823422W北京1100102〔序列生成〕李青83824566L大连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〔序列生成〕王牧83823422W北京1100103〔序列生成〕李青83824566L大连116023insertintocustomers(customer_id,name,phone,email,address,code)values(seq_customers.nextval,'王牧','83823422','Wangmu@sina','北京','110010');insertintocustomers(customer_id,name,phone,email,address,code)values(seq_customers.nextval,'李青','83824566','Liqing@sina','大连','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.contact,publishers.phonefrombooks,publisherswherebooks.publisher_id=publishers.publisher_id;〔17〕查询当前还没有发货的订单信息及下达订单的用户名,查询结果按下达订单日期排序。selectorders.order_id,orders.orderdate,orders.shipaddress,orders.shipcode,fromorders,customerwherecustomer.customer_id=orders.customer_idandorders.shipdate=null;〔18〕查询已经购置了“计算机〞类图书的所有人的客户号和姓名。selectcustomer.customer_id,fromcustomer,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.ISBNand='王牧';〔21〕确定客户“张扬〞订购的图书的作者。selectbooks.authorfrombooks,customers,orders,orderitemwhere='张扬'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.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_idand='赵敏'五、实验体会和收获实验工程名称: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〕创立一个函数,以出版社名为参数,返回该出版社出版的图书的平均价格。createorreplacefunctionfunc(p_name%type)returnnumberasv_pricenumber;beginselectavg(retail)intov_pricefrombooks,publisherswherepublishers.publisher_id=books.publisher_idand=p_name;returnv_price;end;setserveroutputondeclareavg_pricebooks.cost%type;publisher_name%type;beginpublisher_name:=&x;avg_price:=func(publisher_name);dbms_output.put_line(publisher_name||''||avg_price);end;〔4〕创立一个函数,以客户号为参数,返回该客户可以获得的礼品名称。createorreplacefunctionfunc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 油气管道铺设爆破作业合同
- 建筑施工索赔管理合同
- 物流园区群综合楼租赁合同
- 财务会计人员聘用合同
- 木工包工协议书模版
- 橄榄球场景扩建围挡施工协议
- 河南省商丘市(2024年-2025年小学五年级语文)人教版阶段练习(下学期)试卷及答案
- 【初中道法】敬畏生命+课件-2024-2025学年统编版道德与法治七年级上册
- 像女友认错的检讨书范文(9篇)
- 清明祭祀发言稿
- 幼儿园绘本故事:《老虎拔牙》 课件
- 2021年上半年《系统集成项目管理工程师》真题
- 一个冬天的童话 遇罗锦
- GB/T 706-2008热轧型钢
- 实验六 双子叶植物茎的初生结构和单子叶植物茎的结构
- GB/T 25032-2010生活垃圾焚烧炉渣集料
- GB/T 13610-2020天然气的组成分析气相色谱法
- 《彩虹》教案 省赛一等奖
- 2023年湖南建筑工程初中级职称考试基础知识
- 沈阳机场航站楼扩建工程安装施工组织设计
- 司法考试:证据法
评论
0/150
提交评论