




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库及应用复习题一、设计题 有一个学生课程数据库,数据库中包括三个表:学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为: Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。 成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。用SQL语言实现下列功能:1建立学生表Student,其中学号属性不能为空,并且其值是唯一的。2向Student表增加“入学时间(Scome)”列,其数据类型为日期型。3查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。4查询学习1号课程的学生最高分数、平均成绩。5查询与“李洋”在同一个系学习的学生。6将计算机系全体学生的成绩置零。7删除学号为05019的学生记录。8删除计算机系所有学生的成绩记录。1CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(2),Sage INT,Sdept CHAR(15)2ALTER TABLE Student ADD Scome DATETIME3 SELECT Sno, GradeFROM SGWHERE Cno=3 ORDER BY Grade DESC4 SELECT MAX(Grade), AVG(Grade)FROM SC WHERE Cno=15 SELECT Sno, Sname, SdeptFROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname=李洋)6 UPDATE SG SET Grade=0 WHERE Sno in( SELECT Sno FROM Student WHERE Sdept = 计算机系)7DELETE FROM StudentWHERE Sno=050198 DELETE FROM SG WHERE Sno in( SELECT Sno FROM Student WHERE Sdept = 计算机系)二、设计题 现有关系数据库如下: 数据库名:教师数据库教师表(编号 char(6),姓名,性别,民族,职称,身份证号) 课程表(课号 char(6),名称) 任课表(ID,教师编号,课号,课时数) 用SQL语言实现下列功能的sql语句代码:1.创建上述三表的建库、建表代码(14分); 要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID)2.将下列课程信息添加到课程表的代码(6分) 课号 课程名称 100001 SQL Server数据库 100002 数据结构 100003 VB程序设计 修改 课号为100003的课程名称:Visual Basic程序设计 删除 课号为100003的课程信息 3.写出创建任课表视图(教师编号,姓名,课号,课程名称,课时数)的代码;(4分)4.写出创建某门课任课教师内嵌表值函数以及检索的代码;(6分) 检索:所有代SQL Server数据库这门课程的老师姓名;5.写出创建统计课时数:输出最大课时数、最低课时数、平均课时的存储过程以及执行代码;(6分)6. 写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。(6分)执行:计算“郭老师”的总课时。(6分)7.检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。(4分)8.建一个规则,并将其绑定到教师表的职称列上,规定取值为(教授,副教授,讲师, 助教)之一。(4分)1.create database 教师数据库 -(2分)use 教师数据库gocreate table 教师表 -(6分)(编号 char(6) primary key,姓名 nchar(4) not null,性别 nchar(1) check(性别 in (男, 女),民族 nchar(8) default 汉族 not null,职称 nchar(12),身份证号 char(18) unique) create table 课程表 -(2分)(课号 char(6) primary key,名称 char(40) not null) create table 任课表 -(4分)(ID IDENTITY(1, 1), 教师编号 char(6) references 学生表(学号),课号 char(6) references 课程表(课号),课时数 integer check(课时数 between 0 and 200) 2.insert 课程表 values(100001, SQL Server数据库) insert 课程表 values(100002, 数据结构)insert 课程表 values(100003, VB程序设计)update 课程表 set 名称=Visual Basic程序设计 where 课号=100003delete 课程表 where 课号=1000033.create view 任课表视图 asselect 教师编号,姓名,课号, 课程名称,课时数 from 教师表,任课表where 教师表.编号=任课表.教师编号4. create function 某门课任课教师(课程名 varchar(15)returns table asreturn (select 课程名称, 课时数, 教师姓名=姓名 from 任课表视图where 课程名=课程名)goselect * from 某门课任课教师(SQL Server数据库)5.create procedure 统计课时数 asselect 最大课时数=max(课时) ,最小课时数=min(课时),平均课时数=avg(课时) from 任课表goexecute 统计课时6.create procedure 统计课时 教师名 nchar(16),asbegin declare 总课时 int select 总课时=sum (课时) from 任课表视图 where 姓名 = 教师名 endgoexecute 统计课时 郭老师7. select 编号, 姓名 from 教师表where编号 in (select distinct 教师编号 from 任课表 where课时数=90)8.create rule zhicheng _ruleas zhicheng in (教授,副教授,讲师, 助教)gosp_bindrule zhicheng_rule, 教师表.职称三、设计题(共50分) 现有关系数据库如下: 数据库名:医院数据库医生表(编号,姓名,性别,出生日期,职称) 病人表(编号,姓名,性别,民族,身份证号) 病历表(ID,病人编号,医生编号,病历描述) 用SQL语言实现下列功能的sql语句代码:1.创建上述三表的建库、建表代码; 要求使用:主键(师医生表.编号,病人表.课号)、外键(病历表.医生编号,病历表.病人课号)、非空(职称,姓名)、检查(性别),自动编号(ID) (16分)2.将下列医生信息添加到医生表的代码 编号 姓名 性别 出生日期 职称100001 杜医生 男 1963-5-18 副主任医师100002 郭医生 女 1950-7-26 副主任医师100003 刘医生 男 1973-9-18 医师 修改 编号为100002的医生职称为主任医师 删除 编号为100003的医生信息 (8分)3.写出创建:医疗表视图(医生编号,姓名,病人姓名,病历)的代码;(4分)4.写出所有病人编号、姓名、病历、以及病人所对应的医生编号的查询语句;(4分)7. 写出创建: 输出某医生(根据医生编号即可)看病人数存储过程以及执行过程(要求输入医生姓名的参数,输出病人数)(6分)。8. 写出查询1970年以前出生的医生(4分)。7.检索有病人的医生信息。(4分)8.创建一个默认,并将其绑定到医生表的成绩职称列上,默认值为“医师”。(4分)1.create database 医院数据库use 医院数据库gocreate 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) create table病历表(ID IDENTITY(1, 1), 病人编号 char(6) references 病人表(学号),医生编号 char(6) references 医生表(编号),病历描述 varchar(1000)) 2.insert 医生表 values(100001, 杜医生, 男, 1963-5-18, 副主任医师)insert 医生表 values(100002, 郭医生, 女, 1950-7-26, 副主任医师)insert 医生表 values(100003, 刘医生, 男, 1973-9-18, 医师)update医生表 set 职称=主任医师 where 编号=100002delete医生表 where 编号=1000033. create view 医疗表视图 asselect br.姓名,ys.姓名,yl.病历 from 病人表 as br join 医疗表 as ylon br.编号yl.病人编号join 医生表 as yson yl.医生编号=ys.编号4 Select br.编号, br.姓名, br.病历, yl.医生编号 from 病人表 br left join 医疗表 yl on br.编号 = yl.病人编号5 create procedure 某医生看病人数医生编号 nchar(16), 人数 int outputasselect 人数=count(病人编号)from 病人表where 医生编号 = 医生编号godeclare TOTAL intexecute 某医生看病人数 100001, TOTAL6 select * from 医生表 where 出生日期1970-01-019.select 编号, 姓名, 性别, 出生日期, 职称 from 医生表where 编号 in (select 医生编号 from 医疗表)8.create default zhicheng AS 医师goexec sp_bindefault zhicheng, 医生表.职称四、设计题(共50分) 现有关系数据库如下: 数据库名:学生选课数据库学生表(学号,姓名,性别,年龄,专业)课程表(课程号,课程名,学分,先行课程号)选课表(ID, 学号,课程号,分数) 用SQL语言实现下列功能的sql语句代码:1.创建数据库学生选课数据库代码(2分);2.创建课程表代码(2分); 课程表(课程号 char(6),课程名,学分,先行课程号) 要求使用:主键(课程号)、非空(课程名, 学分)3.创建学生表代码(6分); 学生表(学号 char(6),姓名,性别,年龄,专业) 要求使用:主键(学号)、非空(姓名,专业)、检查(性别)4.创建选课表代码(4分); 选课表(ID,学号,课号,分数) 要求使用:外键(选课表.学号,选课表.课程号)、检查(分数),自动编号(ID)5.将下列课程信息添加到课程表的代码(8分) 课程号 课程名 学分 先行课程号 100001 C语言 2 100002 数据结构 2 100001 100003 数据库原理 2 修改 课程号为100003的课程名:SQL数据库 删除 课程号为100002的课程信息 6.写出创建:选课表视图(学号,姓名,课程号,课程名,学分,分数)的代码;(4分)7.写出创建:某门课程成绩 内嵌表值函数以及检索的代码;(6分) 检索:所有修 SQL数据库 这门学生的成绩;8.写出创建:某门课程高低均分 计算某门课程成绩最高分、最低分、平均分 存储过程以及执行的代码;(6分) 执行:所有修 SQL数据库 这门学生的最高分、最低分、平均分;9.检索姓张的女同学的情况:姓名、学号、专业。(2分)10.检索有一门或一门以上课程成绩小于60分的所有学生的信息,包括学号、姓名。(4分)1. create database 学生选课数据库gouse 学生选课数据库go2. create table 学生表(学号 char(6) primary key, 姓名 nchar(4) not null, 性别 nchar(1) check(性别 in (男, 女), 年龄 numeric(2) , 专业 char(18) not null) 3. create table课程表(课程号 char(6) primary key, 课程名 char(40) not null, 学分 numeric(2) not null, 先行课程号 char(6) ) 4. create table选课表(ID IDENTITY(1, 1), 学号 char(6) references 学生表(学号), 课程号 char(6) references 课程表(课程号), 分数 integer check(分数 between 0 and 100)5.insert 课程表 values(100001, C语言,2)insert 课程表 values(100002, 数据结构, 2, 100001)insert 课程表 values(100003, 数据库原理, 2)update课程表 set 课程名=SQL数据库 where 课程号=100003delete课程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年上海市金融稳定发展研究中心公开招聘工作人员模拟试卷完整参考答案详解
- 2025安徽淮北师范大学招聘高层次人才90人模拟试卷附答案详解(黄金题型)
- 2025黑龙江鸡西市社会治安综合治理中心招聘公益性岗位1人考前自测高频考点模拟试题及答案详解一套
- 2025黑龙江哈尔滨市平房区侵华日军第七三一部队罪证陈列馆讲解员招聘5人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025国网经济技术研究院有限公司第二批高校毕业生录用人选的模拟试卷及答案详解(易错题)
- 2025年宁德市供电服务有限公司招聘30人考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025江苏淮安市淮阴城市产业投资集团有限公司招聘拟聘用人员考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025广西贺州市富川瑶族自治县公安局第一次公开招聘警务辅助人员8人模拟试卷附答案详解(模拟题)
- 2025安康石泉县两河镇中心卫生院招聘(2人)考前自测高频考点模拟试题有答案详解
- 2025届春季雅砻江公司校园招聘正式启动考前自测高频考点模拟试题及一套完整答案详解
- 施工队进场安全教育培训
- 海绵印拓画课件
- 2025年科技创新与成果转化的知识能力考核试题及答案
- 秩序员休假管理制度
- 2025至2030中国惯性导航行业投资现状与前景预测分析报告
- 轻型卒中临床诊疗中国专家共识(2024版)解读
- 非ST段抬高型急性冠脉综合征诊断和治疗指南(2024)解读
- 耳机品质协议书范本
- 2025版VI设计合同范本
- 人美版五年级上册5.绘画中的透视现象一等奖教案设计
- 从法律出发理解与应用新清单标准
评论
0/150
提交评论