数据库原理复习题_第1页
数据库原理复习题_第2页
数据库原理复习题_第3页
数据库原理复习题_第4页
数据库原理复习题_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业精品一、一个图书馆理系统中有如下信息:图书:书号、书名、数量、位置借书人:借书证号、姓名、单位出版社:出版社名、邮编、地址、电话、E-mail其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有惟一性。根据以上情况,完成如下设计:(1)设计系统的E-R图;5分(2)将E-R图转换为关系模式;3分(3)指出转换后的每个关系模式的关系键(主键,外键)。2分

2、解答:(1书号书名数量位置社名邮编地址图书出版出版社N1N借书日期借阅还书日期电话E_mailM借书人借书证号姓名单位图书关系模式:图书(书号,书名,数量,位置,出版社名)关系主键:书号外键:出版社名借书人关系模式:借书人(借书证号,姓名,单位)关系主键:借书证号出版社关系模式:出版社(出版社名,邮编,地址,电话,E-mail)关系主键:出版社名借阅关系模式:借阅(借书证号,书号,借书日期,还书日期)关系主键:(借书证号,书号)外键1:借书证号外键2:书号二、有一个学生课程数据库,数据库中包括三个表:学生表(学号,姓名,性别,年龄,所在系)课程表(课程号,课程名,先修课号,学分)成绩表(学号,

3、课程号,成绩)精品用SQL语言编写实现下列功能的代码:1、建立一个学生表,要求设置学号属性为主键,规定年龄大于2、查询年龄在20至23岁之间的学生的姓名、系别、和年龄。3、查询各系的人数及平均年龄。4、计算“数据库原理”课程的学生平均成绩。5、将计算机科学系全体学生的成绩置零。6、创建一个“经济系”全体学生的视图V_JJX。7、创建一个自定义函数,可以求解任意数n的阶乘累加和,即计算+n!,并用n=10调用该函数。8、建一个规则,并将其绑定到学生表的所在系列上,规定取值为(16。S=1!+2!+3!+经济系,管理系,机电,信息系)之一。9、创建一个触发器,要求当更新课程表的课程号时,能更新成绩

4、表中相应的课程号。答案:1、建立一个学生表。CREATETABLE学生表(学号CHAR(5)PRIMARYKEY,姓名CHAR(20),性别CHAR(2),年龄INTCHECK(所在系CHAR(15)年龄16),2、查询年龄在20至23岁之间的学生的姓名、系别、和年龄SELECT姓名,所在系,年龄FROM学生表WHERE年龄BETWEEN20AND233、查询各系的人数及平均年龄。SELECT所在系,COUNT(*),AVG(年龄)FROM学生表GROUPBY所在系4、计算数据库应用课程的学生平均成绩SELECTAVG(成绩)FROM成绩表WHERE课程号in(SELECT课程号WHERE课程

5、名=FROM课程表数据库应用)5、将计算机科学系全体学生的成绩置零UPDATE成绩表SET成绩=0WHERE学号in(SELECT学号FROM学生表WHERE所在系=计算机科学系6、createviewV_JJXasselect*from学生表)WHERE所在系=经济系7、CREATEFUNCTIONF_C(nINT)RETURNSBIGINTASBEGIN精品DECLAREiint,pbigint,sbigintSELECTi=1,p=1,s=0WHILEi=nBEGINSETp=p*iSETs=s+pSETi=i+1ENDReturnSENDGoselectdbo.F_C(10)-调用8.

6、Createruler_szxaszcin(经济系,管理系,机电系,信息系)goexecsp_bindruler_szx,学生表.所在系9、Createtriggertr_up_kconkcForupdateAsDeclarekh_oldchar(3),kh_newchar(3)Selectkh_old=deleted.课程号,kh_new=inserted.Fromdeletedd,insertediWhered.课程名=i.课程名Updatexs_kcset课程号=kh_new课程号Where课程号=kh_old工程名称修路A段铺路B段精品三、现有关系数据库如下:数据库名:工程管理职工表(

7、职工编号char(6),姓名,性别,民族,工资,身份证号)工程表(工程号char(6),名称)参加表(ID,职工编号,工程号,天数)用SQL语言实现下列功能的sql语句代码:1.创建数据库,名为工程管理,其它参数可自己指定(5分)。2.创建上述三表的代码(12分);要求使用以下约束:主键(职工表.职工编号,工程表.工程号)、外键(参加表.职工编号,参加表.工程号)、默认(民族:汉族)、非空(姓名)、唯一(身份证号)、检查(性别、天数在0200之间),自动编号(ID)3插入、修改与删除记录操作(12分):(1)向工程表插入:工程号2)修改工程号为的工程名称为:基座打桩3)删除工程号为的工程信息4

8、.创建名为参加表视图的视图(姓名,工程名称,天数);(8分)创建名为某工程参加职工的内嵌表值函数,完成输入一项工程号,返回表中含有参加该工程的职工的职工姓名、性别、工资、身份证号和天数;(5分)调用函数检索:所有参加这项工程的职工姓名;(3分)。创建名为职工参加天数的存储过程:在参加表视图中查找某给定姓名的职工参加所有工程的总天数。(5分)执行存储过程:计算职工“张明”的总天数。(3分)7创建一个名为GZ_RULE的规则,并将其绑定到职工表的工资列上,规定取值为1000元到3000元之间。(6分)8.创建一个名为del_tr的触发器,如果某人参加工程的天数不为0,就不能删除该职工的信息,即回滚

9、撤销删除。(6分)1.createdatabaseuse工程管理go工程管理-(5分)2.createtable职工表-(5分)(编号char(6)primarykey,姓名nchar(4)notnull,性别nchar(1)check(民族nchar(8)default性别in(男,汉族notnull,女),工资nchar(12),身份证号char(18)unique)精品createtable工程表-(2分)(工程号char(6)primarykey,工程名称char(40)notnull)createtable参加表(IDIDENTITY(1,1),职工编号char(6)referenc

10、es工程号char(6)references天数intcheck(天数)-职工表(职工编号工程表(工程号),between0and200)(4),分)3.insertinsertupdatedelete工程表工程表工程表工程表values(,修路values(,铺路set名称=基座打桩wherewhere工程号=A段)B段)工程号=4.createviewselect姓名,where职工表.参加表视图as工程名称,天数from职工表,参加表,工程表职工编号=参加表.职工编号AND职工表.编号=参加表.职工编号5.createfunction某工程参加职工(工程号varchar(6)return

11、stableasreturn(selectfromwhere姓名、性别、工资、身份证号,天数职工表.编号=参加表.职工编号AND工程号=工程号)goselect*from某工程参加职工()6.createprocedure职工参加天数职工名nchar(16)asbeginselectsum(天数)from参加表视图where姓名=职工名endgoexecute职工参加天数张明7.createrulegz_rule_asGZBETWEEN1000AND3000gosp_bindrulegz_rule,职工表.工资8.Createtriggerdel_tronFordelete职工表AsBegin

12、精品If(select天数from参加表where职工号in(select职工号fromdeleted)0Rollbackend四、1、计算1+2*3+4*5+6*7+96*97+98*99的和,并使用PRINT显示计算结果。DECLAREIint,sumint,csumchar(10)SELECTI=_,sum=_WHILEI=_BEGINSELECTI=_SELECTsum=_ENDSELECTcsum=convert(char(10),sum)_1+2*3+4*5+6*7+96*97+98*99=+csum2、假定某单位有一工资数据表,表名为GZ,部分数据如下:工号姓名基本工资津贴公积金养老保险失业保险医疗保险1001程鑫1,200.00100.0010.0030.0020.0020.001002李倩如1,100.00123.0012.0023.0023.0021.001103张大宏1,111.00121.0012.0021.0021.0012.001104赵楠欣1,212.00211.0013.0031.0031.0032.00对以上数据表要做如下处理:如果平均岗位津贴低于150元,则使用有人的岗位津贴加10元,如果最高岗位津贴超过300元,则退出WHILEUSETESTGODECLAREavgjtdecimal(4,1)WH

温馨提示

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

评论

0/150

提交评论