ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:41.59KB ,
资源ID:12221845      下载积分:20 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-12221845.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(国家开放大学《Oracle数据库编程》形考任务1-6参考答案.docx)为本站会员(国****)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

国家开放大学《Oracle数据库编程》形考任务1-6参考答案.docx

1、国家开放大学Oracle数据库编程形考任务1-6参考答案题目随机,下载后利用查找功能完成学习任务形考任务11.参照教材中PL/SQL代码编写程序,检测视图clu$是否存在,并给出提示信息。答:PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用。PL/SQL也是一种程序语言,叫做过程化SQL语言(ProceduralLanguage/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算

2、。PL/SQL只有Oracle数据库有。MySQL目前不支持 PL/SQL的。(1)视图介绍视图是一个逻辑表,也是一个非常重要的方案对象。实际上,视图是查看表的一种方式。视图是对根据预定义的选择标准由一个或多个行的集合建立起来的动态表的静态定义。视图可以用来定义来自一个或多个表的行和列的多种连接。通过视图,可以查看到表中的数据。视图是查看数据库表中的数据的一种方法。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图只是一种逻辑对象,是一种虚拟表,并不是物理对象,因为视图不占物理存储空间。在视图中被查询的表称为视图的基表。通常通过它就像使用表一样访问数据。要记住通过视图引用

3、的数据通常来自它后面的基表。视图应该使用一致的命名约定。例如,给所有的视图增加一个前缀,如每一个视图都以v_、view_或vw_开头。这样,可以使用户在看到名称时就立即知道它代表的对象是视图。(2)视图好处使用视图的优点,如集中用户使用的数据、掩码数据的复杂性、简化权限管理以及为向其他应用程序输出而重新组织数据等。集中用户使用的数据:视图创建了一种可以控制的环境,即表中的一部分数据允许访问,而另外一部分数据则不允许访问。那些没有必要的,敏感的或不适合的数据都从视图中排除掉了。掩盖数据库的复杂性:视图把数据库设计的复杂性与用户屏蔽分开。这样就为数据库开发人员提供了一种改变数据库的设计而不影响用户

4、使用的能力。用户只需要查询视图就可以得到所需的数据,而不用编写复杂的查询语句或者执行脚本。简化用户权限的管理:数据库所有者可以把视图的权限授予需要查询的用户,而不必将基表中某些列的查询权限授予用户。(3)视图创建可以使用3种方法创建视图,一种方法是使用create view语句,另一种方法是使用DBA studio图形工具,还可以使用创建视图向导来创建。使用create view语句创建视图create or replaceforce | noforce view user. viewName(column ,column2.)as querywith check optionConstrai

5、nt constraintwith read onlyor replace 表示如果同名的视图存在,则使用新视图替代已有的视图。force强制创建视图,不考虑基表是否存在,是否具有使用基表数据的权限。noforce只有基表存在且具有权限,才可以创建视图。user表示创建视图的用户名。viewName表示将要在数据库上创建的视图名称。column指定视图中的列名。query表示生成视图的select语句。with check option指定强制检查通过视图修改数据的操作。constraint表示指定的约束名称。with read only:表示创建的视图只能检索数据,不能修改数据。形考任务21

6、.备份user_tables.table_name到表tab1,备份dba_tables.table_name到表tab2,使用一条select语句查询表tab1和tab2,其中tab1的数据全部输出,tab2数据仅输出和tab1重复部分。答:数据导出:(1)将数据库orcl完全导出,用户名system密码manager导出到D:daochu.dmp中exp system/managerorcl file=d:daochu.dmp full=y(2)将数据库中system用户与sys用户的表导出exp system/managerorcl file=d:daochu.dmp owner=(sy

7、stem,sys)(3)将数据库中的表table1、table2导出exp system/managerorcl file=d:daochu.dmp tables=(table1,table2)(4)将数据库中的表table1中的字段 filed1 以00打头的数据导出exp system/managerorcl file=d:daochu.dmp tables=(table1)query=where filed1 like 00%上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面 加上compress=y就可以了数据的导入:(1)将D:daoc

8、hu.dmp中的数据导入orcl数据库中。imp system/managerorcl file=d:daochu.dmp上面可能有点问题,因为有的表已经存在,然后它就报错,对该表就不进行导入。在后面加上 ignore=y 就可以了。(2)将d:daochu.dmp中的表table1导入imp system/managerorcl file=d:daochu.dmp tables=(table1)基本上上面的导入导出够用了。不少情况我是将表彻底删除,然后导入。注意:你要有足够的权限,权限不够它会提示你。数据库时可以连上的。可以用tnsping orcl来获得数据库orcl能否连上附录一:给用户

9、增加导入数据权限的操作第一,启动sql*puls第二,以system/manager登陆第三,create user用户名IDENTIFIED BY密码(如果已经创建过用户,这步可以省略)第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATE SESSION TO用户名字第五,运行-cmd-进入dmp文件所在的目录,imp userid=system/manager full=

10、y file=*.dmp或者imp userid=system/manager full=y file=filename.dmp形考任务3一、单项选择题1.Oracle数据库的管理员是()。A.SYSB.rootC.adminD.administration2.“altertabletab1dropcolumncol1;”的作用是()。A.删除了数据表tab1的字段col1B.为数据表tab1增加了字段col1C.修改数据表tab1的字段column名称为col1D.以上都不对3.count()的作用是()。A.数据统计B.计时器C.累加器D.以上都不对4.desc的作用是()。A.查看表/视

11、图的结构B.改变表/视图的结构C.扩展表/视图的结构D.删除表/视图5.count()属于()。A.单行函数B.分组函数C.数值函数D.转换函数6.substr()函数的作用是()。A.取字符串子串B.连接两个字符串C.转换字符串D.复制字符串7.JOINON子句的作用是()。A.用于产生笛卡儿积B.自动找到匹配的关联字段,消除笛卡儿积C.指定一个可以消除笛卡儿积的关联字段D.指定一个可以消除笛卡儿积的关联条件8.“fromuser_tablesu”中的u是()。A.user_tables的别名B.user_tables的一个字段C.数据表名D.语法错误9.DBMS目前采用的数据模型中最常用的

12、是()模型。A.面向对象B.层次C.网状D.关系ca命令作用是()A.启动数据库配置程序B.配置网络组件C.网络CA认证工具D.启动数据库监听程序11.oracle数据库中的bin_to_num函数的作用是?()A.把二进制数值转换为对应的十进制数值B.把二进制数值转换为对应的十六进制数值C.把二进制数值转换为对应的八进制数值D.把二进制数值转换为对应的浮点数12.oracle数据库中的lower函数的作用是?()A.将字符转换成小写B.将字符转换成大写C.将字符转换成数值D.将数值转换成字符13.oracle数据库中的last_day函数的作用是?()A.返回当前月份的最后一天日期B.返回当

13、前周的最后一天日期C.返回指定日期的当前月份的最后一天日期D.返回指定日期的当前周的最后一天日期14.orderby中desc的作用是()A.查看表结构B.降序C.升序D.以上都不对15.sqlplus/nolog指令的意思是?()A.不进行sqlplus的登录B.sqlplus登录时不进行日志记载C.sqlplus登录时使用用户名密码D.sqlplus登录时不使用用户名密码实现空连接16.下列哪种不是DML语句是()。A.insertB.alterC.updateD.delete17.下面选项中有关连接描述错误的是()A.Innerjoin内连接B.leftjoin左连接C.rightjoi

14、n右连接D.outerjion外连接18.在Oracle数据库中,删除一个表,那么对建立在该表上的索引产生的结果是()A.没有影响B.索引同时被删除C.索引失效D.索引中的值为空19.删除表使用的语句是()。A.deletetableB.closetableC.deltableD.droptable20.哪个是按照一定的数据模型组织的、长期存储在计算机内,可为多个用户共享的数据的集合。()A.数据库系统B.数据库C.关系数据库D.数据库管理系统21.在ORACLE中,TRUNCATE命令的作用是()A.删除表B.删除表中全部数据C.删除表中全部列定义D.删除表中全部外键定义22.哪个不是多行子

15、查询的运算符()A.INB.ANYC.D.ALL23.数据库系统的基础是()。A.数据结构B.数据库管理系统C.操作系统D.数据模型24.系统中有权利启动和关闭数据库的用户是:()。A.hrB.userC.systemD.scott二、判断题25.DML实现对数据的增、删、改、查等操作。()26.DML是数据定义语言。()27.数据表名可以修改。()28.数据表是一个二维的数据结构,由字段和对应数据构成数据存储的结构。()29.OracleSQL对标准SQL做了实现及扩展。()30.orderby默认情况下按升序排序。()31.sysdate()函数可以得到系统的当前时间。()32.to_ch

16、ar(x,f)函数把字符串或时间类型x按格式f进行格式化转换为字符串类型。()33.SQL语句中有多个数据表时SQL引擎会按照自左向右的顺序处理from子句后面的数据表。()34.INITCAP(列名|表达式):将每个单词的第一个字母转换成大写。()35.多个数据表时from子句后面表名顺序无所谓。()36.MONTHS_BETWEEN:返回两个日期类型数据之间间隔的整月数。()37.Oracle支持5种类型的约束:notnull、unique、check、primarykey、foreignkey。()38.Oracle数据库中可以对约束进行禁用,禁用约束可以在执行一些特殊操作时候保证操作能

17、正常进行。()39.Oracle数据库中字符串和日期必须使用双引号标识。()40.oracle数据库系统中,启动数据库的第一步是启动一个数据库实例。()41.SUM和AVG函数分别返回每组的总和及平均值_。()42.为了节省存储空间,定义表时应该将可能包含NULL值的字段放在字段列表的末尾。()43.修改表时,可以指定新添加列的位置。()44.单行函数对单行操作,每行返回一个或多个结果。()45.使用DELETE语句删除表中的行记录,不能rollback。()46.在连接操作中,如果左表和右表中不满足连接条件的数据都出现在结果中,那么这种连接是全外连接_。()47.自然连接是根据两个表中同名的

18、列而进行连接的,当列不同名时,自然连接将失去意义。()47.数据处理的经过4个阶段,即:人工管理阶段、文件系统阶段、数据库系统阶段、大数据系统阶段。()48.使用集合运算时列的数据类型、列数可以不一致。()49.空值在升序排列中排在最开始,在降序排列中排在最后。()50.一个表可以有三个主键。()形考任务41.创建一个存储过程,实现在user_tables查询参数给出的表名是否存在,并从存储过程中返回结果。答:创建一个名称为sch的数据表,表结构如表1所示,将表2中的数据插入sch表中。表1:字段名数据类型主键外键非空唯一自增idint(10)是否是是否namevarchar(50)否否是否否

19、glassvarchar(50)否否是否否 表2:idnameglass1xiaomingglass12xiaojunglass2 第一步:创建一个sch表,并向sch表中插入表2中的数据,代码如下:mysql create table sch- (- id int(10),- name varchar(50),- glass varchar(50)- );Query OK, 0 rows affected (0.11 sec)mysql insert into sch value(1,xiaoming,glass 1),- (2,xiaojun,glass 2);Query OK, 2 ro

20、ws affected (0.05 sec)Records: 2 Duplicates: 0 Warnings: 0mysql desc sch;+-+-+-+-+-+-+| Field | Type | Null | Key | Default | Extra |+-+-+-+-+-+-+| id | int(10) | YES | | NULL | | name | varchar(50) | YES | | NULL | | glass | varchar(50) | YES | | NULL | |+-+-+-+-+-+-+3 rows in set (0.00 sec) 1 2 3

21、4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22通过select * from sch来查看插入表格的内容,SQL 语句如下:idnameglass1xiaomingglass12xiaojunglass2第二步:创建一个存储函数用来统计表sch中的记录数。mysql create function count_sch()- returns int- return (select count(*) from sch);Query OK, 0 rows affected (0.05 sec)mysql select count_sch();+-

22、+| count_sch() |+-+| 2 |+-+1 row in set (0.00 sec) 1 2 3 4 5 6 7 8 9 10 11 12创建的存储函数名称为count_sch,通过select count_sch()查看函数执行的情况,这个表中只有两条记录,得到的结果也是两条记录,说明函数成功执行。第三步:创建一个存储过程,通过调用存储函数的方法来获取表sch中的记录数和sch表中id的和。创建一个存储过程add_id,同时使用前面创建的存储函数返回表sch中的记录数,计算出表中所有的id之和。代码如下:mysql delimiter /mysql create proced

23、ure add_id(out count int)- begin- declare itmp int;- declare cur_id cursor for select id from sch;- declare exit handler for not found close cur_id;- select count_sch() into count;- set sum=0;- open cur_id;- repeat- fetch cur_id into itmp;- if itmp then set sum= sum+itmp;- end if;- until 0 end repea

24、t;- close cur_id;- end /Query OK, 0 rows affected (0.06 sec)mysql select a,sum /+-+-+| a | sum |+-+-+| NULL | NULL |+-+-+1 row in set (0.00 sec)mysql delimiter ; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28表sch中只有两条记录,所有id的和为3,和预想的执行结果完全相同。这个存储过程创建了一个cur_id的光标,使用这个光标来获取

25、每条记录的id,使用 repeat 循环语句来实现所有id号相加。几个小问题:(1)MySQL 存储过程和存储函数有什么区别?本质上都是存储程序。函数只能通过return语句返回单个值或表对象;存储过程不允许执行return,但可以通过out参数返回多个值。函数限制比较多,不能用临时表,只能用表变量,还有一些函数都不可用。 存储过程的限制相对就比较少。函数可以嵌sql语句中使用,可以在select语句中作为查询语句中的一个部分调用,而存储过程一般是作为一个独立的部分来执行。(2)存储过程中的代码可以改变吗? MySQL还不提供对已存在的存储过程代码的修改。如果必须修改存储过程,就必须使用dro

26、p语句删除之后再重新编写,或者创建一个新的存储过程。(3)存储过程中可以调用其他存储过程吗?存储过程包含用户定义的sql语句集合,可以使用call语句调用存储过程,当然在存储过程中也可以使用call语句调用其他存储程序,但是不能使用drop语句删除其他存储过程。(4)存储过程的参数不能与数据表中的字段名相同。在定义存储过程参数列表时,应注意把参数名与数据库表中的字段名区别开, 否则将出现无法预期的结果。(5)存储过程的参数可以使用中文吗?一般情况下,可能会出现存储过程中传入中文参数的情况,例如,某个存储过程根据用户的名字查找该用户的信息,传入的参数值可能是中文。这时需要在定义存储过程的时候,在

27、后面加上character set gbk,不然调用存储过程中使用中文参数会出错,比如定义userInfo 、存储过程,代码如下:create procedure useInfo(In u_name varchar(50) character set gbk, out u_age int)形考任务5一、单项选择题1.使用()子句可以筛选分组后的各组数据。A.whereB.groupbyC.orderbyD.having2.“select*fromdba_data_fileswherebytes=max(bytes);”出错原因是()。A.该语句语法正确B.字段bytes不存在C.拼写错误D.分

28、组函数不能使用在where子句中3.子查询不能使用()语句。A.orderbyB.groupbyC.whereD.in4.删除存储过程sp_clu的语法是()。A.dropproceduresp_clu;B.deleteproceduresp_clu;C.afterproceduresp_clu;D.deletesp_clu;5.“updatetab1setname=1234whereid=1;”修改了()条记录。A.1B.0C.1D.不确定6.建立数据表的同时使用“check(id=10)”的作用是()。A.建立了检查约束B.指定了字段id的默认值C.指定了字段id的大小D.以上都不对7.数据库约束状态默认是()。A.enablevalidateB.enablenovalidateC.disablevalidateD.disablenovalidate8.事务中触发回滚后()操作会失效。A.deleteB.updateC.insertD.以上皆是9.INTERSECT是()A.交集B.并集重复C.并集不重复D.补集10.MINUS是()A.交集B.并集重复C.并集不重复D.补集11.完全联合运算默认情况下输出()。A.不排序B.升序C.降序D.不确定12.UNION是()A.交集B.并集重复C.并集

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2