数据库期末考试编程题Word格式.docx
- 文档编号:22555355
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:14
- 大小:95.71KB
数据库期末考试编程题Word格式.docx
《数据库期末考试编程题Word格式.docx》由会员分享,可在线阅读,更多相关《数据库期末考试编程题Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
张旺'
where学号='
1022'
9.编写SQL语句,删除没有选课的学生
deletefrom学生表snonotin(selectsnofromsc)
10.编写SQL语句,查询课程号9的先行课的情况
select*from课程表where课程号=(select先行课号from课程表where课程号=9)
11.编写关系代数,查询选修3号课程的学生学号
n学号(/课程号=‘3'
(选课表))
12.编写关系代数,查询至少选修了一门直接先行课为5号课程的学生姓名
参看课本60页
13.编写SQL语句,创建学生表
Createtable学生表(学号char(10),姓名varchar(20),性别char⑵,年龄int,班级char(30))
14.编写SQL语句,建立计算机1班男生的视图
Createviewasselect*from学生表where班级='
计算机1班'
and性别二’男'
Student
15.编写SQL语句,将对学生表的修改权限赋给用户U1
Grantupdateontable学生表toU1
1.设有一个学生课程数据库,包括学生关系Student、课程关系Course选修关系SC图1所示:
学号
Sno
姓名
Sname
性别
Ssex
年龄
Sage
所在系
Sdept
95001
李勇
男
20
CS
95002
刘晨
女
19
IS
95003
王敏
18
MA
95004
张立
Course
课程号
课程名
先行课
学分
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
3
信息系统
操作系统
6
数据结构
7
数据处理
PASCA1语言
SC
成绩
Grade
92
85
88
90
80
图1学生-课程数据库
写出完成下列要求的SQL语句:
1)查询所有年龄在20岁以下的学生姓名与年龄。
1.selectSname,SagefromStudentwhereSage<
20;
或selectSname,SagefromStudentwherenotSage>
=20;
2)查询年龄不在20〜23(包括20岁和23岁)之间的学生的姓名、系别和年龄。
selectSname,Sdept,SagefromStudentwhereSagenotbetween20and23;
3)查询每个学生及其选修课程的情况。
selectStudent.*SC.*fromStudent,SCwhere=;
2.把下面用关系表示的实体、实体与实体之间的联系,用E-R图表示出来,要求在图中表示联系的类型(1:
1:
n、m:
n)。
实体1:
学生(学号,姓名,性别,年龄)关键字为:
实体2:
课程(课程号,课程名,学分数)关键字为:
实体1与实体2的联系:
学习(学号,课程号,成绩)关键字为:
学号+课程号注:
一个学生可以选多门课程,一门课程也可以被多个学生选,学生选课后有成绩。
学生选课关系E-R图
学生
u学命J
五、编码题
1、下面给出三个关系模式:
(1)学生关系S(SNO,SName,SAgeSSeX
(2)课程关系C(CNO,CName,CTeache)
(3)学习关系SC(SNO,CNO,Grade)
根据要求用T-SQL完成下列各题。
(1)检索学习课程号为“C0100T的学生学号与姓名;
(2)检索至少选修课程号为“C0010T和“C0234T的学生学号。
答:
(1)SELECT#,SNAME
FROMS,SC
WHERE#=#ANDC#='
C01001'
(2)SELECT#
FROMSCASX,SCASY
WHERE#=#AND#='
00101'
AND#='
02341'
2、图书管理数据库BookManager由以下四个关系模式组成,根据该结构用T-SQL完成以下各题。
(1)读者(借书证号姓名,性别,出生日期)
(2)图书(ISBN图书名称,作者,出版社,价格,数量)
(3)借阅(借书证号,ISBN借出时间)
根据要求完成下列各题。
(1)创建一个名称为BookManager的数据库,其初始大小为10MB,最大为20MB,允许数据库自动增长;
日志文件初始大小为2MB,最大为5MB。
文件存储在目录D:
\TESTTo
(2)编写一个存储过程,查询某读者当前的借书情况。
(3)创建一个触发器,如果在图书表中添加或更改数据,则向客户端显示一条信息。
解:
(1)CREATEDATABASEBookManager
ON(NAME=BookManager_DATA,
FILENAME=D:
'
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=10%)
LOGON(
SIZE=2MB,
MAXSIZE=5MB,
(2)CREATEPROCEDUREproc_reader
@lib_numchar(8)
AS
SELECT借书证号,姓名,,书名
FROMReaderA,JYB,BOOKC
WHEREA.借书证号=B.借书证号AND=ANDA.借书证号=@lib_num
(3)CREATETRIGGERtrig_reminderONReader
FORINSERT,UPDATE
RAISEERROR(4OO8,16,1O)
3、设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题:
(1)建立一个视图V_SSC(SNO,SN,CNO,CN,G并按CNO升序排序;
(2)从视图V_SSCh查询平均成线在90分以上的SN、CN和G。
答:
(1)CREATEVIEWV_SSC(SNO,SN,CNO,CN,G)
ASSELECT,,CNO,,
WHERE=
ORDERBYCNO
(2)SELECTSN,CN,G
FROMV_SSC
GROUPBYSNO
HAVINGAVG(G)>90
4、图书管理数据库BookManager由以下四个关系模式组成,根据该结构用T-SQL完成以下各题。
(1)读者(借书证号,姓名,性别,出生日期)
(2)图书(ISBN,图书名称,作者,出版社,价格,数量)
(1)创建一个名称为BookManager的数据库,其初始大小为10MB,最大为20MB,允许数据库自动增长;
日志文件初始大小为2MB,最大为5MB。
\TEST下。
表读者表俵名为XS)
字段名
类型与
宽度
是否
主码
是否允许
空值
借书证号
Char(8)
是
NOTNULL
专业名
Char(12)
Char
(2)
出生日期
Datetime
借书量
Integer
ISBN
Char(16)
书名
Char(26)
作者
出版社
Char(20)
价格
Float
副本量
表图书表(表名为BOOK)
ON(NAME='
BookManager_DATA'
FILENAME='
D:
2)CREATEPROCEDUREproc_reader
SELECTA.书证号,姓名,,书名
3)CREATETRIGGERtrig_reminderONReader
RAISEERROR(4008,16,10)
5、下面给出一个商品销售数据库中包含的三个基本表:
(1)客户表
table_Client(CNO,Cname,CsexCbirthday)
(2)商品表
table_Goods(GNO,Gname,Gunit,Gprice)
(3)购物表
table_CG(CNO,GNO,CGquantity)
用T-SQL语句完成下列各题。
(1)查询购买了商品的客户号及姓名。
(2)查询1978年出生的客户号及姓名。
(3)购买了三种以上商品的客户号及客户姓名。
(1)selectCNO,Cname
fromtable_Client
whereCNOin
(selectdistinetCNO
fromtable_CG)
(2)selectCNO,Cname
whereCbirthday='
978'
(3)selectCNO,Cname
(selectCNO
fromtableCG
groupbyCNO
havingcount(*)>
3)
6、学生-选课-课程数据库由以下四个关系模式构成:
STUDENT(SNO,SName,SAgeSSexSAddress
TEACHERTNO,TTeache,TPosTAddress
COURSECNO,CName,CTerm,CCredit,TNO)
SELECTCOURSSNO,CNQGrade)
(1)用SQL语句建立STUDENTS。
(2)为COURSES建立插入触发器,保证教师编号的正确性。
1)
createtablestudent
snonvarchar(8),
snamenvarchar(10),
sageint,
ssexchar(4),
saddressnvarchar(50),
primarykey(sno)createtriggercourse_insert_tnooncourse
forinsert
asif(notexists
(selecttnofromteacherwheretnoin
(selectfrominserted)))
begin
print'
无此教师'
rollbacktransaction
成绩和课程名。
用SQL语句表达下列操作
(1)检索选修课程名称为“MATHS的学生的学号与姓名
(2)检索至少学习了课程号为“C1”和“C2'
的学生的学号
3)检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄
4)检索平均成绩超过80分的学生学号和平均成绩
5)检索选修了全部课程的学生姓名
WHERECNO'
=C2'
GROUPBYS#
2、设学生-课程数据库中包括三个表:
Sdept)
学生表:
Student(Sno,Sname,Sex,Sage,课程表:
Course(Cno,Cname,Ccredit)
学生选课表:
SC(Sno,Cno,Grade)
其中Sno、Sname、Sex、Sage、Sdept、Cno、Cname、Ccredit、Grade分别表示学号、姓名、性别、年龄、所在系名、课程号、课程名、学分和成绩。
试用SQL语言完成下列项操作:
1)查询选修课程包括“1042”号学生所学的课程的学生学号
(2)创建一个计科系学生信息视图S_CS_VIEW/包括Sno学号、Sname姓名、Sex性别;
3)通过上面第2题创建的视图修改数据,把王平的名字改为王慧平
(4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包含学号、姓名、成绩。
答案:
(1)SELECTDISTINCTSNO
FROMSCSCX
WHERENOTEXISTS
(SELECT*
FROMSCSCY
WHERE='
1042'
AND
NOTEXISTS
FROMSCSCZ
WHERE=AND
=);
(2)CREATEVIEWS_CS_VIEW
SELECTSNO,SNAME,SEX
FROMSTUDENT
WHERESdept'
=CS'
(3)UPDATES_CS_VIEW
SETSNAME'
王慧平'
WHERESNAME'
王平'
(4)CREATEVIEWdatascore_view
SELECTSNO学号、SNAME姓名、GRADE成绩
FROMSTUDENT,SC,COURSE
AND=
ANDCNAME=数据库'
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 期末考试 编程