试题信息管理与信息系统(共11页)_第1页
试题信息管理与信息系统(共11页)_第2页
试题信息管理与信息系统(共11页)_第3页
试题信息管理与信息系统(共11页)_第4页
试题信息管理与信息系统(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上ORACLE试题(50分)一、判断题(9分)(每小题1分)1 SGA 是针对某一服务器进程而保留的内存区域,它是不可以共享的。(对) 2 用户进程可以直接操纵数据库。(错) 3 Order by 子句仅对检索数据的显示有影响,并不改变表中行的内部顺序。(对) 4 从一个表中删除元组时, delete 和 drop table 命令可以起到同样的效果。(对) 5 %rowtype 用来保证数据类型和变量的长度与数据库中的数据列相一致。(错) 6 与主键不同,惟一键可以是 null 值。(错) 7 Delete 可以有选择地删除记录,使用 rollback 语句可以取消这

2、个命令的执行。(对) 8 Create table <table name> as select 能够创建一个复制表对象。(对) 9 使用 having 子句是为了限制 group by 子句返回的行的个数。(对) 一、填空(4分)(每小题1分)(1)数据库系统由数据库、数据库管理系统、数据库管理员、用户和应用程序组成。(2)Oracle 10g产品数据库组件的安装盘、Companion CD 、客户端 、CRS和Gateway等组成。(3)数据库的启动方式有:startup nomount 非安装启动、startup mount dbname 安装启动、startup restr

3、ict 约束方式启动、startup force 强制启动方式、startup pfile=参数文件名。(4)数据库的关闭模式有:shutdown norma正常方式关闭数据库、shutdown abort直接关闭数据库、shutdown immediate 立即方式关闭数据库。二、简答题(7分)(每小题1分)(1)如何查看已定义表的方案、表空间、存储参数、块空间管理参数等信息?select scheme from table_nameanalyze table emp compute statisticsselect table_name,num_rows,avg_row_len,num_r

4、ows * avg_row_len from user_tables where table_name=select table_name,initial_extent,next_extent,min_extents,max_extents,pct_increase from user_tables;(2)ORACLE中数据类型CHAR、VARCHAR 、VARCHAR2有什么不同?答:char(n) 长度为n的定长字符串。varchar(b) 最大长度为n的变长字符串。varchar2(n) 变长字符型数据类型,最小长度为一个字节,最大长度为4000字节,应用时必须指定它的长度。区别有以下三

5、点:1CHAR的长度是固定的,而VARCHAR2的长度是可以变化的, 比如,存储字符串“abc",对于CHAR (20),表示你存储的字符将占20个字节(包括17个空字符),而同样的VARCHAR2 (20)则只占用3个字节的长度,20只是最大值,当你存储的字符小于20时,按实际长度存储。 2CHAR的效率比VARCHAR2的效率稍高。3目前VARCHAR是VARCHAR2的同义词。工业标准的VARCHAR类型可以存储空字符串,但是oracle不这样做,尽管它保留以后这样做的权利。Oracle自己开发了一个数据类型VARCHAR2,这个类型不是一个标准的VARCHAR,它将在数据库中

6、varchar列可以存储空字符串的特性改为存储NULL值。如果你想有向后兼容的能力,Oracle建议使用VARCHAR2而不是VARCHAR。 (3)什么是ROWID?有哪几类?如何使用?答:ROWID是数据库的一个伪列,建立表的时候数据库会自动为每个表建立ROWID列 ,用来唯一标识一行记录。 Oracle的ROWID分为两种:物理ROWID和逻辑ROWID。它主要记录表内各行的物理地址,以便能够快速定位并用来唯一标识数据行。Oracle的ROWID用来唯一标识表中的一条记录,是这条数据在数据库中存放的物理地址。索引组织表使用逻辑ROWID,其他类型的表使用物理ROWID。(4)截断表与删除

7、表有何区别?答:表删除包括表的定义和关联对象(规则、索引、约、触发器、主键,等)截断表命令则仅仅删除了表中所有的数据行。表的结构和所有的索引仍然继续存在,直到你输入删除表的命令。(5)对SQL语句进行优化的常用策略有那些?答:1、尽可能地减少多表查询2、以不相关子查询替代相关子查询3、只检索需要的列4、用带IN的条件子句等价替换OR子句5、根据表出现在FROM中的顺序,ORDERED使ORACLE依此顺序对其连接. 6、将指定表与嵌套的连接的行源进行连接,并把指定表作为内部表.(6)当元组含有空值时?空值是否参与聚集操作?答:空 (NULL) 值表示数值未知。空值不同于空白或零值。没有两个相等

8、的空值。比较两个空值或将空值与任何其它数值相比均返回未知,这是因为每个空值均为未知。空值通常表示未知、不可用或将在以后添加的数据。组函数忽略空值。(7)在什么情况下使用层次查询?怎样将表中存储的具有层次关系的数据,以层次的结构方式查询出来?答:当数据之间的关系是层次关系,如有零部件组成的汽车结构和家族图谱用oracle10g可以很方便的查询各种层次关系。层次查询的语法如下:ELECT LEVEL,column,expr. FROM tableWHERE conditionSTART WITH conditionCONNECT BY PRIOR column1 = column2 | colum

9、n1 PRIOR column2;其中伪列LEVEL用于返回层次结构的层次(1:根行;2:第二级行;3:第三级行);START WITH子句用于指定层次查询的根行;CONNECT BY 子句用于执行父行和子行之间的关系,当定义父行和子行的关系时,必须使用PRIOR关键字,并且column1和column2对应于父键列或者子键列。当使用层次查询显示层次结构的表行数据时,可以采用从顶向下或者从底向上两种方式显示数据。三、操作题(写出相关操作的SQL语句)(20分)(每小题5分) 1.表的创建学生成绩管理项目中每个关系的属性可作以下定义:部门信息 DEPT部门编号:varchar2(8) PK部门名

10、称:varchar2(40)部门经理:varchar2(8)地址: varchar2(80)部门人数:number答:Create table dept(Dept_id varchar2(8) primary key,Dept_name varchar2(40),Dept_manger varchar2(8),Dept_ads varchar2(80),Dept_num number(5);学生基本信息 STUDENT部门编号:varchar2(8) FK学号:varchar2(12) PK姓名:varchar2(20) not null性别:varchar2(1) or char学生类型:v

11、archar2(1) or char入学日期:date籍贯:varchar2(20)身份证号:varchar2(18)详细地址:varchar2(60)出生日期:date所学专业:varchar2(20)民族:varchar2(20)电话:varchar2(20)缴费总计:number备注:varchar2(80)答:Create table student(Dept_id varchar2(8) ,Foreign key(dept_id ) references dept(dept_id),Stu_num varchar2(12) primary key,Stu_name varchar2(

12、20) not null,Stu_gender varchar2(1),Stu_type varchar2(1) ,Stu_startdate date,Stu_native varchar2(20),Stu_id varchar2(18),Stu_ads varchar2(60),Stu_born date,Stu_major varchar2(20),Stu_nation varchar2(20),Stu_tel varchar2(20),Stu_cost number(5),Stu_ps varchar2(80);课程信息 COURSE课程号:varchar2(8) PK课程名称:var

13、char2(40) not null开设年级:varchar2(8) 学时数:number 答:Create table course(Course_id varchar2(8) primary key,Course_name varchar2(40) not null,Course_class varchar2(8),Course_time number(5);成绩单 REPORT_CARD学号:varchar2(12) FK课程号:varchar2(8) FK学期:varchar2(8)成绩:number(5,2) 备注:varchar2(80)答:Create table report_

14、card(Stu_num varchar2(12) ,Foreign key (stu_num) references student(stu_num),Course_id varchar2(8),foreign key (course_id) references course(course_id),Term varchar2(8),Mark number(5,2),Card_ps varchar2(80);(学号,课程号)为PK写出完成下列操作的正确的SQL语句:(1)创建学生成绩管理项目中四个基表:部门信息表dept、学生基本信息表student、课程信息表courses和成绩单表rep

15、ort_card。(2)修改courses表修改表名为courses1Alter table course rename to courses1增加字段pcourses_no 类型varchar2,长度为10Insert into courses1Values(pcourses_no,varchar2,10)修改字段pcourses_no,长度为8Alter table courses1 modify pcourses_no varchar2(8)删除字段pcourses_noAlter table course1 drop pcourses_no(3)删除表STUDENTDrop table

16、 student2.表记录的操作在DEPT表中插入数据(写出SQL语句)101,信息工程系,null,校3号教学楼,48102,电子商务系,null,校4号教学楼,null103,管理系,null,校5号教学楼,null201,校长办公室,null,校办公北楼4楼,null202,校人事处,null,校办公北楼3楼,null203,校教务处,null,校办公南楼2楼,null答:Insert into dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(101, 信息工程系,null, 校3号教学楼,48)Insert in

17、to dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(102,电子商务系,null, 校4号教学楼,null)Insert into dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(103,管理系,null, 校5号教学楼,null)Insert into dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(201,校长办公室,null, 校办公北楼4楼,null)Insert

18、into dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(202,校人事处,null, 校办公北楼3楼,null)Insert into dept(dept_id ,dept_name,dept_manger,dept_ads,dept_num)Values(203,校教务处,null, 校办公北楼2楼,null)在STUDENT表中插入数据(写出SQL语句)101,李丽,1,1,sysdate,山西,山西太原, ,信息管理与信息系统,汉,0351-,null,null101,王娜,1,1,sysdate,山西,山西大同

19、,信息管理与信息系统,汉,0351-,null,null101,张大虎,1,1,sysdate,山西,山西运城,计算机科学与技术,汉,0731-,null,null答:Insert into student(dept_id,stu_num,stu_num,stu_gender,stu_type,stu_stardate,stu_native,stu_id,stu_ids,stu_born,stu_major,stu_nation,stu_tel,stu_cost,stu_ps)Values(101,李丽,1,1,sysdate,山西,山西太原, ,信息管理与信息系统,汉,0351-,null,

20、null)Insert into student(dept_id,stu_num,stu_num,stu_gender,stu_type,stu_stardate,stu_native,stu_id,stu_ids,stu_born,stu_major,stu_nation,stu_tel,stu_cost,stu_ps)Values(101,王娜',1,1,sysdate,山西',山西大同', ,信息管理与信息系统',汉',0351-,null,null)Insert into student(dept_id,stu_num,stu_num,stu_g

21、ender,stu_type,stu_stardate,stu_native,stu_id,stu_ids,stu_born,stu_major,stu_nation,stu_tel,stu_cost,stu_ps)Values(101,张大虎',1,1,sysdate,山西',山西运城',计算机科学与技术',汉',0731-,null,null)在COURSES表中插入数据(写出SQL语句),数据库系统设计 ,48,软件需求工程,36,;,软件工程导论,36,;答:Insert into courses(couse_id,course_name,cou

22、rse_class,course_time)Values(,数据库系统设计 ,48,)Insert into courses(couse_id,course_name,course_class,course_time)Values(,软件需求工程,36,)Insert into courses(couse_id,course_name,course_class,course_time)Values(,软件工程导论',36,)在report_card表中插入数据(写出SQL语句),null,88,null,,null,78,null,null,94,null,null,92,null,n

23、ull,84,null,null,74,null答:Insert into report_card(stu_num,course_id,term,mark,card_ps)Values(,null,88,null)Insert into report_card(stu_num,course_id,term,mark,card_ps)Values(,,null,78,null)Insert into report_card(stu_num,course_id,term,mark,card_ps)Values(,null,94,null)Insert into report_card(stu_nu

24、m,course_id,term,mark,card_ps)Values(,null,92,null)Insert into report_card(stu_num,course_id,term,mark,card_ps)Values(,null,84,null)Insert into report_card(stu_num,course_id,term,mark,card_ps)Values(,null,74,null)将课程号为课程的成绩普提5分。(写出SQL语句)答:Update report_card Set mark=mark+5Where course_id=将report_car

25、d中学期为空的记录全部设置为(写出SQL语句)答:Update report_cardSet term=Where term is null删除掉系代号为101并且姓名为张大虎的学生记录。(写出SQL语句)答:Delete from studentWhere dept_id=101 and stu_name=张大虎删除student表中的全部数据。(写出SQL语句)答:Drop table student3.表的查询(写出SQL语句)(1)简单查询查询部门信息表DEPT的信息。Select * from dept查询部门信息表DEPT中部门编号与部门名称。Select dept_id,dept

26、_nameFrom dept查询学生基本信息表STUDENT中学生的学号、姓名和年龄。Select stu_num,stu_name,stu_ageFrom student查询部门编号为201或202的部门部门名称、部门经理、地址。Select dept_name,dept_manger,dept_adsFrom deptWhere dept_id=201 or dept_id=202查询1984年出生的学生的学生信息。Select *From studentWhere stu_born=1984查询山西学生的学号、姓名、年龄及所在系。Select stu_num,stu_name,stu_a

27、ge,stu_majorFrom studentWhere stu_native=山西查询学生的学号、姓名、出生日期及所在系,输出结果先按照部门编号升序排序,部门编号相同按照出生日期降序排序。Select stu_num,stu_name,stu_born,stu_majorFrom studentGroup by dept_idOrder by dept_id desc查询各院系人数。Select count(stu_num)From student查询院系人数多于500的院系及其人数。Select dept_name,count(stu_num)From studentWhere coun

28、t(stu_num>500)(2)子查询与连接查询查询信息工程系的学生的学号、姓名、性别、入学日期及籍贯。Select stu_num,stu_name,stu_gender,stu_stardate,stu_nativeFrom student,deptWhere dept_name in(select dept_name From deptWhere dept_name='信息工程系')查询其他系比101系某一学生年龄小的学生学号、姓名、性别、入学日期和年龄。Select stu_num,stu_name,stu_gender_stu_stardate,stu_age

29、From studentWhere stu_age<any(select stu_ageFrom studentWhere dept_id=101)查询其他系比101系所有学生年龄都要小的学生学号、姓名、性别、入学日期和年龄。Select stu_num,stu_name,stu_gender_stu_stardate,stu_ageFrom studentWhere stu_age<all(select stu_ageFrom studentWhere dept_id=101)生成清单,内容包括系代码、系名称、学号、姓名、性别、入学日期和籍贯等信息。Select dept_id,

30、dept_name,stu_num,stu_name,stu_gender,stu_stardate,stu_nativeFrom student,deptWhere student.dept_id=dept.dept_id生成清单,内容包括系代码、系名称、学号、姓名、选修课程号及所获成绩。Select dept_id,dept_name,stu_num,stu_name,course_id,markFrom dept,student,course,report_cardWhere student.dept_id=dept.dept_id and student.stu_num=report_

31、card.stu_num and course.course_id=report_card.course_id查询选修了课程号为的学生的学号和姓名。Select stu_num,stu_nameFrom studentWhere course_id in(select course_id From courseWhere course_id=)(3)集合查询(写出查询结果)UNIONSQL>SELECT student_no,'101' FROM STUDENT WHERE DEPT_NO='101'UNIONSELECT student_no,'

32、' FROM report_card WHERE course_no='' INTERSECTSQL>SELECT student_no,'101' FROM STUDENT WHERE DEPT_NO='101'INTERSECTSELECT student_no,'' FROM report_card WHERE course_no=''4.数据库的复杂查询本实验以SCOTT方案中的表为例来实现。(1)横向小计与纵向小计查询查询雇员表emp,统计不同部门(deptno)、不同岗位(job)的平均工

33、资,同时生成横向小计统计(部门的平均工资)。SELECT deptno,job,avg(sal) from scott.emp GROUP BY ROLLUP(deptno,job);在基础上生成纵向小计,统计岗位的平均工资。SELECT deptno,job,avg(sal) from scott.emp GROUP BY CUBE(deptno,job);有些统计结果只会用到deptno列,有些统计结过只会用到job列,查看每项统计结果到底使用了哪些列。(2)外连接查询查询部门名称以及该部门中的人员姓名(有些部门没有雇员)。select dept_name,enamefrom scott.

34、emp ,scott.deptwhere e.dept_id=d.dept_id(+);查询数据库中是否存在部门没有雇员,或者雇员不曾分配到各部门的情况。select dept_name,ename from scott.emp ,scott.deptwhere e.dept_id(+)=d.dept_id;(3)多列子查询查询与SMITH部门和岗位完全相同的所有雇员信息。Select *From scott.empWhere job=(select jobFrom scott.deptWhere dept_name='SMITH)显示工资、补助与SCOTT完全一致的所有雇员名、工资、

35、补助。Select ename,sal,supplyFrom scott.empWhere dept_name in(Select dept_nameFrom scott.deptWhere dept_name=SCOTT)(4)层次查询通过层次查询显示除CLERK岗位外其他雇员之间的上下级关系select ename,jobfrom scott.empstart with mgr is nullwithout dept_name=clerkconnect by mgr=prior empno;通过层次查询MARTIN的所有领导姓名。SELECT LPAD(' ',3*(LEV

36、EL-1)|ename ename,LPAD(' ',3*(LEVEL-1)|job jobFrom scott.empSTART WITH ename='MARTIN'CONNECT BY empno=PRIOR mgr;查询课程表中各课程之间的先修关系。Selectlpad('   ',3*(level-1)|course_no 课程编号,lpad('   ',3*(level-1)|course_name 课程名称 from coursesSTART WITH period IS NULL CONNECT BY PERIOD=PRIOR COURSE_NO;(5)特殊子查询查询各个部门基本工资在01000,10012000,20013000,30014000,4000以上五个等级的雇员人数。Select count(deptno)From scott.empWhere sal>0 and sal<1000UnionSelect count(deptno)From scott.empWhere sal>1001 and sal<2000UnionSele

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论