SQL数据库管理与开发》试题及习题参考答案_第1页
SQL数据库管理与开发》试题及习题参考答案_第2页
SQL数据库管理与开发》试题及习题参考答案_第3页
SQL数据库管理与开发》试题及习题参考答案_第4页
SQL数据库管理与开发》试题及习题参考答案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、13.4300 、 13.45704、 1. (1)为用户集中需要的数据,简化了数据的用户操作;(2) 对用户隐藏了数据库设计的复杂性;(3) 简化用户权限的管理(4) 组织数据导出到其它应用程序;2. 1. 数据表 / 视图 (select insert update delete)2. 列( 字段 ) 的访问 (select update)5、 1. create database 我班同学数据库 gouse 我班同学数据库 9. exec sp_addlogin U 班主任 , 888, 我班同学数据库 exec sp_grantdbaccess U 班主任 , U 读者 exec sp

2、_addrolemember db_datareader, U 读者 SQL数据库管理与开发教程与实训试题(B卷)参考答案1、ADCCA ACAAD2、YYYNN NYNNY NYNYN3、1. 、 2. 68、C 3. beautiful 、我心中的太阳 4. 水 平、垂直 5. 选择、投影 6. 实体、域 7. 算术、逻辑 8.6、7 9. 17、 -215 、13.4400 、-18.4560go2. create table 宿舍表( 宿舍号 char(6) primary key, 宿 舍 电 话 char(7) check( 宿 舍 电 话 like 6330-90-90-90-9

3、)3. create table 同学表( 学号 char(6) primary key,姓名 nchar(4) not null,性别 nchar(1) check( 性别 in ( 男, 女 ), 年龄 int ,民族 nchar(8) default 汉族 not null,身份证号 char(18) unique,宿舍号 char(6) references宿舍表 ( 宿舍号 )4. insert 宿舍表 values(101, 6331157) insert 宿舍表 values(102, 6331777) update 宿舍表 set 宿舍电话 =6331158 where 宿舍号

4、 =101delete 宿舍表 where 宿舍号 =1025. create view 同学表视图 asselect 学号, 姓名, 性别, 年龄 , 民族, 身份证号 , 同学表 . 宿舍号 , 宿舍电话from 同学表 , 宿舍表where 同学表 . 宿舍号 =宿舍表 . 宿舍号6. select姓名 , 性别, 宿舍电话from 同学表视图where姓名 like 张% and 性别= 女7. select最大年龄 = max( 年龄), 最小年龄 = min( 年龄),平均年龄 = avg( 年龄 )from同学表where性别 = 女 8. create procedure 某宿

5、舍同学 宿舍号 varchar(6)as4、1计算机的连接2. SQL Server 登录(账户、固定服务器角色 )3. 库的访问(用户/角色:固定 /自定义角色 )4. 表/ 视图的权限 (select insert update delete)5. 存储过程、内嵌表值函数的权限 (execute select)6. 表( 视图)中列的权限 (select update)(1)为用户集中需要的数据,简化了数据的用户操作;(2) 对用户隐藏了数据库设计的复杂性;(3) 简化用户权限的管理(4) 组织数据导出到其它应用程序5、 create database 学生成绩数据库gouse 学生成绩数

6、据库 go create table 课程信息表( 课号 char(6) primary key, 名称 nchar(20) not null) create table学生信息表( 学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check( 性别 in (男, 女), 民族 nchar(8) default 汉族 not null, 身份证号 char(18) unique) create table 成绩信息表(ID int identity(1, 1), 学号 char(6) references学生信息表 (学号 )

7、, 课号 char(6) references课程信息表 (课号 ), 分数 integer check( 分数 between 0 and 100) insert课程信息表 values(100101, 西班牙语 )insert课程信息表 values(100102, 大学英语 )SQL数据库管理与开发教程与实训试题(A卷)参考答案1、CDCAB ACDAC 2、YNNNN NYNNN3、1.外模式、模式 2. 、 3. 68、C 4. beautiful、我心中的太阳 5. 水平、垂直6. 选择、投影 7. 实体、域 8. 表、视图 9.6、7 10.select 姓名 , 性别 , 宿舍

8、电话 from 同学表视图 where 宿舍号 = 宿舍号 goexecute 某宿舍同学 101update 课 程 信 息 表 set 名 称 = 专 业 英 语 where 课 号 =100102delete 课程信息表 where 课号 =100101 create view 成绩信息表视图 asselect 成绩信息表 . 学号 , 姓名 , 成绩信息表 . 课号 , 名称 课程 名称 , 分数from 成绩信息表 , 学生信息表 , 课程信息表where 成绩信息表 . 学号 =学生信息表 . 学号 and 成绩信息表 . 课号 =课程信息表 . 课号 select 姓名 , 性别

9、, 民族from 学生信息表where 姓名 like 刘 % and 性别 = 女 select 学号,姓名from 学生信息表where 学号 in(select distinct学号 from 成绩信息表 where 分数 =90)11. use 学生成绩数据库exec sp_addlogin U 领导,NULL, 学生成绩数据库,简体中文exec sp_password NULL, 888, U 领导 exec sp_grantdbaccess U 领导,U 读者 exec sp_addrolemember db_datareader, U 读者 use 学生成绩数据库exec sp_

10、addlogin U 领导,888, 学生成绩数据库 exec sp_grantdbaccess U 领导,U 读者 exec sp_addrolemember db_datareader, U读者SQL数据库管理与开发教程与实训试题(D卷)参考答案一、1 . D 2 . A 3. D 4. D 5. C 6. C 7 . D 8 . D 9 . C 10 . D二、1 . N 2 . N 3 . N 4 . Y 5 . Y 6 . N 7 . Y 8 . N 9 . Y 10 . N三、1 .数据结构、数据操作、完整性约束2 . 1931 3.域完整性4 .触发器5.都完成、都取消6 . W

11、indows身份验证、混合7 .身份、权限8 .完整、差异、事务日志、文件和文件组9 .操作员、作业10 .发布、分发四、1.关系是笛卡尔积的有意义的子集,用二维表格表示;关系的性质如下:关系表中的每一列都是不可再分的基本属性;表中的各属性不能重名;表中的行、列次序不分前后; 表中的任意两行不能完全相同。2. 事务 仃ransaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成, 要么都取消(如果在操作 执行过程中不能完成其中任一操作)。在SQL Server 2000中,事务是由一条或者多条Transact-SQL 语句组成的一个工作单元,这些语句要么都正常执行,要么

12、如果有其中任意 一条语句执行失败被取消的话,这些语句的执行都被取消。 SQL利用事务机制保证数据修改的一致性,并且在系统岀错 时确保数据的可恢复性。3. 事务控制语句的使用方法begin transaction-A组语句序列save transaction 保存点 1-B组语句序列if error 0rollback transaction 保存点1 - 回滚至U:保存点 1elsecommit transaction -提交 A 组语句,同时如果未回滚 B组语句则提交 B组语句。五、1 . 100 sum+i print2 . table char 203 . Declare crscour

13、se cursoropen crscourseclose crscourse4 . viewstudent5 . procedurefrom6 . Alter trigger testfor update7 . Use学生Begin transactionInsert选课表(学号,课程号,报名号)values(20030021, 01 , 1)Insert选课表(学号,课程号,报名号)values(20030021, 02 ,2)Insert选课表(学号,课程号,报名号)values(20030021, 03 ,3)Declarenum intSet num=(select count(*)

14、from 选课表 where 学号=20030021)If num4beginRollback transactionPrint 超过报名门数!endElseBeginCommit transactionPrint报名成功!endgo本题定义的事务成功提交。 SQL数据库管理与开发教程与实训试题(E卷)参考答案、1 . C 2 . A 3 . D 4 . D 5 . B 6 . C 7 . A 8 . D 9 . B 10 . D、1 . N 2 . Y 3 . Y 4 . N 5 . N 6 . Y 7 . Y 8 . N 9 . N 10 . Y 三、1 .数据定义语言(DDL)、数据操作

15、语言(DML)2. 混合3 . 354. 视图5. 实体完整性6. 聚集索引7. 存储过程8 . insert、update9. 原子、一致、独立、持久10 .访问、运行11 .作业、警报12 .事务、合并四、1需求分析阶段的主要任务是通过调查,了解原系统 的工作概况,明确用户的各种需求,收集支持系统目标的基础 数据及其处理方法,概念结构设计的主要任务是对需求分析的结果进行综 合、归纳,从而形成一个独立于具体数据库管理系统的概念数 据模型。逻辑结构设计阶段的主要任务是将概念结构设计的结 果转换为某个具体的数据库管理系统所支持的结构数据模型, 并对其进行优化。2答:触发器是特殊类型的存储过程,它

16、能在任何试图 改变表中由触发器保护的数据时执行。 触发器主要通过事件进 行触发而被执行,触发器不能直接调用执行,也不能被传送和 接受参数,而存储过程可以通过存储过程名被直接调用。触发 器与表有关,存储过程与表无关。3 答: 游标是允许用户能够从 select 语句查询的结果 集中,逐条逐行地访问记录, 可以按照自己的意愿逐行地显示、 修改或删除这些记录的数据访问处理机制。4 答:事务 (Transaction) 可以看成是由对数据库的若 干操作组成的一个单元, 如果这些操作在执行过程中任何一条 操作不能正常完成的话,就取消单元中的所有操作,要么单元 中的所有操作都正常完成。五、 1 creat

17、e database 学生成绩数据库 gouse 学生成绩数据库 go2. create table课程表( 课程号 char(6) primary key 课程名称 char(40) not null 任课教师 char(4)3. create table 学生表 ( 学号 char(6) primary key 姓名 nchar(4) not null 性别 nchar(1) check( 民族 nchar(8) default )4. create table 成绩表 ( 学号 char(6) references 课程号 char(6) references 成绩 integer ch

18、eck(性别 in ( 男, 女) , 汉族 not null学生表 (学号),课程表 ( 课号),成绩 between 0 and 100)5 insert 课程表 values(100001, 大学语文 )insert课程表 values(100002, 大学英语 )insert课程表 values(100003, 西班牙语 )6 create view 成绩表视图 asselect 学号 , 姓名 , 课程号 , 课程名称,成绩 from 成绩表 , 学生表where 成绩表 . 学号 =学生表 . 学号select 学号 , 姓名 , 课程号 , 课程名称,成绩 from 成绩表 jo

19、in 学生表on 成绩表. 学号=学生表. 学号7 create procedure 分数 课程名 nchar(16) asselect 课程名称,最高分=max(分数)、最低分=min(分数) 、平均分 =avg( 分数 )from 成绩表视图where 课程名称 = 课程名8select 姓名 , 性别 , 民族 from 学生表 where 姓名 like 李% and 性别= 女9 use 学生成绩数据库 exec sp_addlogin U 领导 , 888, 学生成绩数据库, 简体中文 exec sp_grantdbaccess U 领导, U 读者 exec sp_addrole

20、member db_datareader, U 读者 10Begin transactionInsert 成绩表(学号,课程号,分数 )values( 2003002 1 , 00 1 , 80)Insert 成绩表(学号,课程号,分数 )values( 2003002 1 , 002 , 90)Insert 成绩表(学号,课程号,分数 )values( 2003002 1 , 003 , 80)Insert 成绩表(学号,课程号,分数 )values( 2003002 1 , 004 , 70)Declare num intSet num=(select count(*) from 成绩表

21、where 学号 =20030021)If num4Rollback transactionElseCommit transactiongoSQL数据库管理与开发教程与实训试题(F卷)参考答案一、1. A 2. C 3. A 4. A 5. A 6.B 7.B 8.A 9.D 10.C二、1. N 2.N 3.N 4.N 5.Y 6.Y 7. N 8.N 9.Y 10.Y三、1网状、关系、关系 2 二维表、属性、元组 3 删除、 更新、查询4结构化查询、数据控制、数据操作 5一对一、一对多、多对多6 逻辑、物理7完整、差异、事务日志、文件和文件组8操作员、作业、警报9 发布、分发、订阅 10

22、建立、修改、删除四、1. 简述按照规范设计方法进行数据库设计的全过程。 需求分析;概念结构设计;逻辑结构设计;物理结构设计;数据库实施;数据库运行和维护。2. 创建数据库有那几种方法?有3种创建数据库的方法:(CREATE DATABASE句;创建数据库向导;企业管理器。)五、1 create table student(Sno char(5) primary key,Sname char(20),Ssex char(2),Sage int,Sdept char(15)2 select distinct snofrom sgwhere grade 0select * from student

23、where sname = nameelseprint 不存在姓名为 + name + 的学生资料 6. select sname ,ssex ,sagefrom sdudentwhere sdept= 计算机系 and sname like 赵 % and ssex = 女 7 create view 学生成绩表视图 asselect sno, sname, cno, cname, grade from sg, sdudent where sc.sno=sdudent.sno8 insert into studentvalues (05020, 丁莉, 女, 17, 计算机系 )SQL数据库

24、管理与开发教程与实训试题(G卷)参考答案一、1.C 2.D 3.A 4.B 5.C 6.C 7.C 8.A 9.C 10.A二、1. N 2.Y 3.N 4.Y 5.Y 6.Y 7. Y 8.Y 9.Y 10.N三 1客户服务器、浏览器服务器2实体、域、参照、实体3create 、alter 、 drop 4 %、 _、字符5max、min、 sum6insert 、update 、 delete 7原子、一致、独立、持久 8. 打开、关闭、释放 9作业、操作员 10发布、分发、订阅四、1什么是数据库备份和恢复?为什么要备份和恢复数据库?数据库备份是指将当前的数据库系统、 数据文件或日志文件

25、复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数 据的介质上,作为副本。数据库备份记录了在进行备份这一操作 时数据库中所有数据的状态。一旦数据库因意外而遭损坏,这些 备份文件可用来恢复数据库。恢复是与备份相对应的数据库管理工作, 数据库备份后, 一 旦数据库发生故障,就可以将数据库备份加载到系统,使数据库 恢复到备份时的状态。系统进行数据库恢复的过程中,自动执行 安全性检查,然后根据数据库备份自动创建数据库结构,并且恢 复数据库中的数据。2关系规范化的基本思想是什么? 所谓关系的规范化, 是指一个低一级范式的关系模式, 通过 投影运算,转化为更高级别范式的关系模式的集合的过程。我们 把

26、满足不同程度要求的关系称为不同的范式。关系规范化的基本思想:逐步消除数据依赖中不合适的部 分,使关系模式达到一定程度的分离,即“一事一地”的模式设 计原则,使概念单一化,即让一个关系描述一个概念、一个实体 或者实体间的一种关系。五、1 CREATETABLE Student(Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(2),Sage INT,Sdept CHAR(15)2 ALTER TABLE Student ADD Scome DATETIME3 SELECT Sno, GradeFROM SGWHERE Cno=3ORDER

27、BY Grade DESC4SELECT MAX(Grade), AVG(Grade)FROM SCWHERE Cno=15SELECT Sno, Sname, SdeptFROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname=李洋)6UPDATE SGSET Grade=0WHERE Sno in( SELECT Sno FROM StudentWHERE Sdept = 计算机系)7DELETE FROM StudentWHERE Sno=050198DELETE FROM SGWHERE Sno in( SELECT

28、 Sno FROM StudentWHERE Sdept = 计算机系)SQL数据库管理与开发教程与实训试题(H卷)参考答案一、1.D 2.C 3.A 4.C 5.A 6.A 7.B 8.D 9.A 10.C二、1. N 2.N 3.N 4.N 5.N 6.N 7. N 8.Y 9.Y 10.N三、1. 选择、投影、连接2. 3.68 4. BEAUTIFAL 我心中的太阳 5. select、 insert 、update 、delete6. 水平、垂直 7. 作业、操作员 8. 实体、域、参照、 用户自定义四、1. 将每个学生的学号和课程号定义为复合主键这样才能保 证每个学生的每门课程惟一

29、。2. 要点:(1) 域完整性:使用DEFAULT (默认值)、DEFAULT默认技术)、 CHECK检查)、RULE (规则技术)的方法指定某列可接受值 的范围或模式(2) 实体完整性: 使用PRIMARYKEY(主键)、UNIQUE:惟一键)、 IDENTITY (标识列)来确保行的惟一性(3) 参照完整性:使用 FOREIGNKEY(外键) 保证列与参照列的 一致性五 、1.create database 教 师 数 据 库 - ( 2 分)use 教师数据库 goend2.3.课程表 values(100001, SQL Server 数据库 )课程表 values(100002, 数

30、据结构 )课程表 values(100003, VB 程序设计 )update 课程表 set 名称 =Visual Basic 程序设计 insert insertwhere课号 =100003 课程表 where 课号 =100003 任课表视图 as 教师编号 , 姓名 , 课号 , 课程名称 , 课时数 from4.5.某门课任课教师 (SQL Server 数据库统计课时数 7.8.教师编号 from 任课副教授 , 讲师, 助教)gosp_bindrule zhicheng_rule, 5.(I 卷) 参考答案10.C10.Y7 4. beautiful6. 2006-01-01

31、7.四舍五入 8. % 娟%、view 、procedure 、 function 10 发布、分发、(1)为用户集中需要的数据,简化了数据的用户操作;(2) 对用户隐藏了数据库设计的复杂性;(3) 简化用户权限的管理2.要点:create table 教师表-(分)( 编号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check( 性别 in ( 男, 女), 民族 nchar(8) default 汉族 not null, 职称 nchar(12), 身份证号 char(18) unique)create table 课程表

32、-(分)( 课号 char(6) primary key, 名称 char(40) not null)create table 任课表-(分)(ID IDENTITY(1, 1), 教师编号 char(6) references 学生表 ( 学号 ), 课号 char(6) references 课程表 ( 课号 ), 课时数 integer check( 课时数 between 0 and 200)insertdelete create view select 教师表 , 任课表where 教师表 . 编号 =任课表 . 教师编号create function 某 门 课 任 课 教 师 (

33、 课 程 名 varchar(15)returns table asreturn (select 课程名称 , 课时数 , 教师姓名 =姓名 from 任课表视图 where 课程名 =课程名 ) go select * from ) create procedure as select 最大课时数 =max(课时),最小课时数 =min(课 时), 平均课时数 =avg( 课时 ) from 任课表 go execute 统计课时 create procedure 统计课时 教师名 nchar(16),asbegindeclare 总课时 intselect 总课时 =sum ( 课时 )

34、from 任课表视图where 姓名 = 教师名goexecute 统计课时 郭老师 select编号 , 姓名 from 教师表where 编号 in (select distinct 表 where 课时数 =90) create rule zhicheng _ruleas zhicheng in ( 教授 ,教师表 . 职称 SQL数据库管理与开发教程与实训试题一、1.C 2.D 3. A 4.D 5.A 6.B 7.B 8.B 9.D二、1. N 2.Y 3.N 4.N 5.N 6.N 7. N 8.Y 9.N三、1. alter 、 drop 2. #、 、 3. A、我心中的太阳

35、左外连接9. table 订阅四、1.1. IFELSE是条件判断语句2. BEGINEND能将多个SQL语句组合成一个语句块, 并视为一个单元处理3. CASE多情况语句,将其中一个符合条件的结果表达式返回4. WHILECOUNTINUE BREAKS置循环语句,COUNTINUE可以终止本次循环,开始下一次循环,BREA却断循环,跳出循环外5. GOT何以使程序跳到指定的标有标识符的位置处继续执行6. WAITFOR暂时停止执行SQL语句、语句块或者存储过 程7. RETUR N无条件的终止一个查询、存储过程或批处理五、1. create database 医院数据库 use 医院数据库

36、 go create table 医生表( 编号 char(6) primary key , 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ( 男, 女) , 出生日期 datetime , 职称 char(18) not null)create table 病人表 ( 课号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in ( 男, 女) , 民族 nchar(10), 身份证号 char(18) not null)6.create table 病历表(ID ID

37、ENTITY(1, 1), 病人编号 char(6) references病人表 ( 学号 ), 医生编号 char(6) references医生表 ( 编号 ), 病历描述 varchar ( 1000 )2. insert 医 生 表 vlues(100001, 杜医 生, 男 ,1963-5-18, 副主任医师 )insert 医生表values(100002, 郭医生 , 女 ,1950-7-26, 副主任医师 )insert 医生表values(100003, 刘医生 , 男,1973-9-18, 医师 )update 医 生 表set 职 称 = 主 任 医 师 where编号=

38、100002delete 医生表 where 编号 =1000033. create view 医疗表视图 asselect br. 姓名 ,ys. 姓名 ,yl. 病历 from 病人表 as br join 医疗表 as yl on br. 编号 yl. 病人编号 join 医生表 as ys on yl. 医生编号 =ys. 编号4 Select br. 编号 , br. 姓名 , br. 病历 , yl. 医生编号 from 病人表 br left join 医疗表 yl on br. 编号 = yl. 病人编号5 create procedure 某医生看病人数 医生编号 nchar

39、(16), 人数 int output as select 人数 =count( 病人编号 ) from 病人表 where 医生编号 = 医生编号 godeclare TOTAL intexecute 某医生看病人数 100001, TOTAL6 select * from 医生表 where 出生日期 30) or (COLOR= red)(2) select sum(QTY)from SPJgroup by SNO,PNO(3) select SNAME from S where SNO in (select SNOfrom SPJ,P,Jwhere (CITY= 北京 ) and (S

40、PJ.PNO=P.PNO)and (JNAME= 齿轮 ) and (SPJ.JNO=J.JNO)(4)create view greenj asselect * from J where COLOR= green2、select 作者名 , 书名 ,出版社from 图书 , 作者where ( 图书 . 作者编号 =作者 . 作者编号 ) and ( 年龄95)(2) select distinct学生. 学号,姓名, 专业from 学生 , 学习where ( 学生.学号=学习.学号) and( 学习.学号 not in (select distinct学号 from 学习 where 分23) 3)select 课程名称 from 课程表 where 课程号 in(select 选课表 . 课程号 from 选课表 , 学

温馨提示

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

评论

0/150

提交评论