oracle-10g数据库基础教程(第2版)孙风栋主编-课后实训答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.为USERS表空间添加一个数据文件,文件名为USERS03.DBF,大小为50MB。altertablespaceusersadddatafile'd:\users03.dbf'size50m;2.为EXAMPLE表空间添加一个数据文件,文件名为example02.dbf,大小为20MB。altertablespaceexampleadddatafile'd:\example02.dbf'size20m;3.修改USERS表空间中的userdata03.dbf为自动扩展方式,每次扩展5MB,最大为100MB。alterdatabasedatafile'd:\userdata03.dbf'autoextendonnext5mmaxsize100m;4.修改EXAMPLE表空间中的example02.dbf文件的大小为40MB。alterdatabasedatafile'd:\example02.dbf'resize40m;5.将表空间USERS中的数据文件USERS03.DBF更名为userdata04.dbf,将表空间EXAMPLE中的数据文件example03.dbf更名为example04.dbf。altertablespaceusersoffline;在磁盘d:\手动更改users03.dbf为userdata04.dbfaltertablespaceusersrenamedatafile'd:\users03.dbf'to'd:\userdata04.dbf';altertablespaceexampleoffline;在磁盘d:\手动更改example03.dbf为example04.dbfaltertablespaceexamplerenamedatafile'd:\example03.dbf'to'd:\example04.dbf';7.为数据库添加一个重做日志文件组,组内包含两个成员文件,分别为redo4a.log和redo4b.log,大小分别为5MB。alterdatabaseaddlogfilegroup4('d:\redo4a.log','d:\redo4b.log')size5m;8.为新建的重做日志文件组添加一个成员文件,名称为redo4c.log。alterdatabaseaddlogfilemember'd:\redo4c.log'togroup4;9.将数据库设置为归档模式,并采用自动归档方式。shutdownimmediatestartupmountalterdatabasearchivelog;alterdatabaseopen;10.设置数据库归档路径为D:\ORACLE\BACKUP。altersystemsetlog_archive_dest='d:\oracle\backup';实验五1.创建一个口令认证的数据库用户usera_exer,口令为usera,默认表空间为USERS,配额为10MB,初始账户为锁定状态。createuserusera_exeridentifiedbyuseradefaulttablespaceusersquota10monusersaccountlock;2.创建一个口令认证的数据库用户userb_exer,口令为userb。createuseruserb_exeridentifiedbyuserb;3.为usera_exer用户授予CERATESESSION权限、scott.emp的SELECT权限和UPDATE权限。同时允许该用户将获得的权限授予其他用户。grantcreatesessiontousera_exerwithadminoption;grantselect,updateonscott.emptousera_exerwithgrantoption;4.将用户usera_exer的账户解锁。alteruserusera_exeraccountunlock;5.用usera_exer登录数据库,查询和更新scott.emp中的数据。同时,将scott.emp的SELECT和UPDATA权限授予用户userb_exer。connusera_exer/usera;grantselect,updateonscott.emptouserb_exer;6.禁止用户usera_exer将获得的CREATESESSION权限再授予其他用户。revokecreatesessionfromusera_exer;grantcreatesessiontousera_exer;7.禁止用户usera_exer将获得的scott.emp的SELECT权限和UPDATA权限再授予其他用户。revokeselect,updateonscott.empfromusera_exer;grantselect,updateonscott.emptousera_exer;8.创建角色rolea和roleb,将CREATETABLE权限、scott.emp的INSERT权限和DELETE权限授予rolea;将CONNECT,RESOURCE角色授予roleb。createrolerolea;createroleroleb;grantcreatetabletorolea;grantinsert,deleteonscott.emptorolea;grantconnect,resourcetoroleb;9.将角色rolea,roleb授予用户usera_exer。grantrolea,rolebtousera_exer;实验三(1)使用SQL命令创建一个本地管理方式下自动分区管理的表空间USERTBS1,其对应的文件大小为20MB。createtablespaceusertbs1datafile'd:\data1.dbf'size20m;(2)使用SQL命令创建一个本地管理方式下的表空间USERTBS2,要求每个分区大小为512K。createtablespaceusertbs2datafile'd:\data2.dbf'size20mextentmanagementlocaluniformsize512k(3)修改USERTBS1表空间的大小,将表空间的数据文件改为自动扩展方式,最大值为100MB。alterdatabasedatafile'd:\data1.dbf'autoextendonmaxsize100m;(4)为USERTBS2表空间添加一个数据文件,以改变表空间的大小。altertablespaceusertbs2adddatafile'd:\data2-2.dbf'size20m;(5)使用SQL命令创建一个本地管理方式下的临时表空间TEMPTBS,并将表空间作为当前数据库实例的默认临时表空间。createtemporarytablespacetemptbstempfile'd:\temp1.dbf'size20m;alterdatabasedefaulttemporarytablespacetemptbs;(6)使用SQL命令对USERTBS1表空间进行联机和脱机状态转换。altertablespaceusertbs1offline;altertablespaceusertbs1online;(7)创建一个回滚表空间UNDOTBS,并作为数据库的撤销表空间。createundotablespaceundotbsdatafile'd:\undo1.dbf'size20m;(8)删除表空间USERTBS2,同时删除该表空间的内容以及对应的操作文件系统。droptablespaceusertbs2includingcontentsanddatafiles;(9)查询当前数据库所有的表空间及其对应的数据文件信息。selecttablespace_name,file_namefromdba_data_files;实验四(1)按下表结构利用SQL语句创建class、student俩个表。createtableclass(cnonumber(2)primarykey,cnamevarchar2(20),numnumber(3));(2)为student表添加一个延迟的外键约束,其CNO列参照class表的CNO列。createtablestudent(snonumber(4)primarykey,snamevarchar2(10)unique,sagenumber,sexchar(2),cnonumber(2));(3)为student表的SAGE列添加一个检查约束,保证该列取值在0~100之间。altertablestudentaddconstraints_fkforeignkey(cno)referencesclass(cno)ondeletecascadedeferrableinitiallyimmediate;(4)为student表的SEX列添加一个检查约束,保证该列取值为“M”或“F”,且默认值为M。altertablestudentaddconstraints_ckcheck(sagebetween0and100);(5)在class表的CNAME列上创建一个唯一性索引。altertablestudentaddconstraints_ck2check(sexin('M','F'))modifysexdefault'M';(6)利用子查询分别创建一个事务级的临时表和会话级的临时表,其结构与student表的结构相同。createglobaltemporarytabletemp1oncommitdeleterowsasselect*fromstudent;createglobaltemporarytabletemp2oncommitpreserverowsasselect*fromstudent;(7)创建一个student_range表,按学生年龄分别为3个区createtablestudent_range(snonumber(4)primarykey,snamevarchar2(10)unique,sagenumber,sexchar(2),cnonumber(2))partitionbyrange(sage)(partitionpart1valueslessthan(20)tablespaceexample,partitionpart2valueslessthan(30)tablespaceorcltbs1,partitionpart3valueslessthan(maxvalue)tablespaceorcltbs2);(8)创建一个student_list表,按学生性别分为2个区。createtablestudent_list(snonumber(4)primarykey,snamevarchar2(20)unique,sagenumber,sexchar(2),cnonumber(2))partitionbylist(sex)(partitionmanvalues('M')tablespaceorcltbs1,partitionwomanvalues('F')tablespaceorcltbs2);(9)创建一个起始值为1000的序列,步长为2,最大值为100000,不可循环。createsequencesequ1incrementby2startwith10000maxvalue100000nocycle;(297)实训题:(1)编写一个PL/SQL块,输出所有员工的员工姓名,员工号,工资和部门号。declarecursorc_empisselect*fromscott.emp;v_empc_emp%rowtype;beginopenc_emp;loopfetchc_empintov_emp;exitwhenc_emp%notfound;dbms_output.put_line(v_emp.ename||''||v_emp.empno||'

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功