《数据库原理与应用》期中测试问卷1一、判断题(每题1分,共10分,正确的写,错误的写)(1)现在应用最广泛且最重要的一种数据模型是网状模型(关系模型)。(2)输入字符型数据时要用单引号或双引号将字符括起来。(3)逻辑数据类型适合真、假场合判断,长度为一个字节,取值为“真”,“假”。(信息存储在BIT型字段中。BIT型字段只能取两个值:0或1。)(4)系统存储过程是指由系统提供,主要存储在master数据库中并以sp_为前缀。(5)索引是对数据库表中一个或多个字段的值进行排序而创建的一种顺序存储结构。(分散存储结构)(6)视图可基于多表建立。(7)GROUPBY子句可以对查询结果分组,且必须要同HAVING联用。(having是分组(groupby)后的筛选条件)(8)临时存储过程与临时表类似,用“##”前缀表是本地临时存储过程或是本地临时表。(本地临时表就是用户在创建表的时候添加了“#”前缀的表,全局临时表的名称以两个数字符号(##)打头)(9)IDENTITY(0,1)属性中,0为标识种子,1为标识增量。(10)唯一索引只能建一个,聚集索引可以建多个。(一个表只能建一个聚集索引)二、选择题(每题2分,共30分,单项选择)1.如果表S(A,B,C)中,设置A为主键,当向S表插入一行新数据时,该行()。A.A,B,C属性的值都可以与已有的行相同B.A,B,C属性的值都不能与已有的行相同C.A属性的值不能与已有的行相同,但允许为空D.A属性的值不能与已有的行相同,也不能为空2.有两个基本关系(表):学生(学号,姓名,系号),系(系号,系名,系主任),学生表的主码为学号,系表的主码为系号,因而系号是学生表的()A.主码(主键)B.外码(外关键字)C.域D.映像3.关系数据库的数据及更新操作必须遵循完整性规则,包括()A.实体完整性和参照完整性B.参照完整性和用户自定义的完整性C.实体完整性和用户自定义的完整性D.实体完整性、参照完整性和用户自定义的完整性4.数据库物理存储方式的描述称为()。A.外模式B.内模式C.概念模式D.逻辑模式5.SQLServer的物理存储主要包括两类文件,它们是()。A.图片文件和文本文件B.数据文件和事务日志文件C.函数文件和数据文件D.源文件和可执行文件6.安装SQLSERVER后,数据库服务器已经自动建立4个系统数据库(master,model,msdb,tempdb),()不是系统数据库。A.master数据库B.pubs数据库C.model数据库D.msdb数据库7.视图提高了数据库的()。A.安全性B.可靠性C.完整性D.一致性8.在MSSQLServer中,有表personnel(no,name,sex),其中no为主码。表中已有数据如下图所示:nonamesex1海涛男3月明女4甄锐女下列语句中能够将数据正确插入的是﹝﹞A.InsertintopersonnelValues(4,’赵风’,’男’)B.InsertintopersonnelValues(8,’赵风’)C.Insertintopersonnel(name,sex)Values(‘赵风’,’男’)D.Insertintopersonnel(no,sex)Vaues(8,’男’)9.关系数据库的关系要满足第一范式,部门(部门号,部门名,部门成员,部门总经理)关系中,因()属性而使它不满足第一范式。A.部门经理B.部门名C.部门成员D.部门号10.设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHEREDNAMELIKE()A.‘__W_%’B.‘_%W__’C.‘_W__’D.‘_W_%’11.对工资表(员工号,姓名,部门号,月薪)进行查询,列出属于D01号部门,且工资高于所有D02号部门员工工资的员工信息,查询语句的WHERE子句应使用()。A.部门号=‘D01’AND月薪ANY(SELECT月薪FROM员工表WHERE部门号='D02')B.部门号=‘D01’AND月薪ALL(SELECT月薪FROM员工表WHERE部门号='D02')C.部门号=‘D01’AND月薪(SELECT月薪FROM员工表WHERE部门号='D02')D.部门号=‘D01’or月薪ALL(SELECT月薪FROM员工表WHERE部门号='D02')12.CreateUniqueNonclusteredIndexwriter_indexOn作者信息(作者编号)语句执行后,在作者信息表上创建了一个()索引。A.惟一聚集索引B.聚集索引C.主键索引D.惟一非聚集索引13.参照完整性要求有关联的两个或两个以上表之间数据的一致性。参照完整性可以通过建立()来实现A.主键约束和唯一约束B.主键约束和外键约束C.唯一约束和外键约束D.以上都不是14.有关系:教学(学号、班级号、班主任,班主任联系电话),一个学生只能属于一个班级,一个班级只有一个班主任,一个班主任只有一个联系电话,那么该关系的主键是()。A.学号B.班级号C.(学号,班级号)D.(学号,班级号,班主任)15.有关系:教师(编号,姓名,生日,职称),从关系中查询所有教师的姓名和生日应使用()关系运算。A.投影B.选择C.连接D.笛卡儿积三、填空题(共10分,每空1分)(1)数据库的三级模式包括外模式、内模式和模式。(2)SQL按其实现功能可以将SQL语言划分为:数据操纵语言,___数据定义语言DDL______,__数据控制语言DCL_______(3)SELECT查询中,条件运算符LIKE对字符型数据进行字符串比较,提供两种通配符,即下划线“_”和“%”,下划线表示___1个______字符,百分号表示____0个或者多个_____字符。'A_Z':所有以'A'起头,另一个任何值的字原,且以'Z'为结尾的字串。'ABZ'和'A2Z'都符合这一个模式,而'AKKZ'并不符合(因为在A和Z之间有两个字原,而不是一个字原)。'ABC%':所有以'ABC'起头的字串。举例来说,'ABCD'和'ABCABC'都符合这个套式。'%XYZ':所有以'XYZ'结尾的字串。举例来说,'WXYZ'和'ZZXYZ'都符合这个套式。'%AN%':所有含有'AN'这个套式的字串。举例来说,'LOSANGELES'和'SANFRANCISCO'(4)SQL语句中使用____ISNULL_____运算符判断字段值是否为空,使用__EXSITS_______运算符测试子查询结果是否为空。EXISTS运算符用来检查每一行是否匹配子查询,可以认为EXISTS就是用来测试子查询的结果是否为空,如果结果集为空则匹配结果为false,否则匹配结果为true。(5)SQLSERVER中可创建三种索引,即唯一索引___聚集索引______,__非聚集索引_______。四、综合题(共40分)1.(共5分)有关系模式R(U,F),属性集U={A,B,C,D,E},函数依赖集合F={C-A,BC-D,D-E},请回答如下的问题:(1)R最高属于第几范式?说明理由;R最高属于1NF,关系模式R的主码是(B,C),存在C-A部分函数依赖(2)请分解R为符合第三范式的关系模式集合,并给出每个关系的主码。R1(B,C,D)主码是(B,C),R2(C,A)主码是C,R3(D,E)主码是D2.(共35分)程序填空与程序设计题(共35分)student数据库中有4个表:stu_info(学号,姓名,性别,年龄,系号)、department(系号,系名),curriculum(课程编号,课程名称,学分),grade(学号,课程编号,成绩)(1)程序填空(每空1分,共17分)1)完成以下代码,使用以下T-SQL创建数据库student,且主数据库文件名为student_dat.mdf,存放在d盘database文件夹下。CreatedatabasestudentON(NAME=student,FILENAME=’D:\database\student_dat.mdf’)2)完成以下代码,使用以下T-SQL在student数据库中先创建stu_info表,之后向表中添加主键约束,向表性别列中添加默认(男)约束。CREATETABLEstu_info(学号char(10)notnull,姓名char(8)notnull,性别char(2)notnull,年龄intnotnull,系号char(3))--向stu_info表中添加主键Altertablestu_infoADDCONSTRAINTpk_numprimarykey(学号)--向stu_info表中添加默认约束Altertablestu_infoADDdefault’男’FOR(性别)3)完成以下代码,使用以下T-SQL在student数据库中grade表,将学号和课程编号设置为主键,成绩取值范围为0~100,将学号设置为外键约束,此学号关联于stu_info表中学号。CREATETABLEgrade(学号char(10)notnull,课程编号char(6)notnull,成绩int,CONSTRAINTpk_sPRIMARYKEY(学号,课程编号),CONSTRAINTchk_scoreCHECK成绩between0and100,CONSTRAINTfk_stinfoFOREIGNKEY学号REFERENCESstu_info(学号))4)以下代码创建视图view1,查询学生选修课程情况,显示学号,姓名,课程编号,课程名称,成绩。CREATEVIEWview1ASSELECTstu_info.学号,姓名,currilum.课程编号,课程名称,成绩FROMstu_info,currilum,gradeWHEREstudent_info.学号=grade.学号andgrade.课程编号=currilum.课程编号--删除视图view1Dropviewview15)将stu_info表中姓名列创建唯一非聚集索引,索引名称为stu_uqnCREATEuniquenonclusteredINDEXstu_uqnONstu_info(姓名)--利用系统存储过程sp_rename为stu_uqn更名为stu_qnsp_renamestu_info.stu_uqn,stu_qn6)使用T-SQL语句删除student数据库DropdatabaseStudent(2)用SQL语句完成如下题目(共18分)1)向stu_info表增加一条数据,(004,张三,男,16)(2分)INSERTINTOstu_info(学号,姓名,性别,年龄)Values(’004’,’张三’,’男’,16)2)修改stu_info表中学号为003的信息,姓名改为李四、年龄18。(2分)Updatestu_infoSET姓名=’李斯’,年龄=18Where学号=’003’3)将stu_info表中学号为004的学生记录删除。(2分)Deldetefromstu_infoWhere学号=’004’4)对stu_info表,列出年龄在15~17岁之间的女学生名单。(2分)Select*fromstu_infowhere年龄between15and17或Select*fromstu_infowhere年龄=15and年龄=175)查询选修了“高等数学”课程的学生的学号,姓名,成绩。(3分)Select学号,姓名,成绩Fromstudent_infoajoingradebona.学号=b.学号JOINcurrilumconb.课程编号=c.课程编号Where课程名称=’高等数学’6)对stu_info表,根据系别查询学生的学号,姓名,系别,系别相同的按学号降序输出。(3分)Select学号,姓名,系号Fromstu_infoOrderby系号,学号desc7)创建视图V1,用于显示各系的平均年龄,即显示(系号,平均年龄)。(4