第一范文网 - 专业文章范例文档资料分享平台

SQL语句练习及参考答案

来源:用户分享 时间:2025/5/30 11:25:42 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

SQL语句练习

1.设学生选课数据库有关系S(sno,sname,age,sex)、SC(sno,cno,grade)和C

(cno,cname,teacher),分别表示学生、选课和课程,sno代表学号,sname代表学生姓名,age代表年龄,sex代表性别,grade代表成绩,cno代表课程号,teacher代表任课教师。试完成表示下列查询。

S sno sname age sex 1 2 5 李强 23 男 刘丽 22 女 张友 22 男

C cno k1 k5 k8 cname C语言 teacher 王华 SC sno 1 2 5 2 5 5

(1)检索年龄大于21的男学生学号(sno)和姓名(sname)。 (2)建立性别只能为“男”、“女”的约束。

(3)创建一个视图v1,该视图用来查询学生的选课情况,要求包含:学生姓名(sname),课程名(cname),任课教师teacher和成绩grade。

(4)检索选修课程号为k1和k5的学生学号(sno)。 (5)检索全部学生都选修的课程的课程号(cno)和课程名(cname)。 (6)删除所有男同学的选课记录。

1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’女’)

(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and sc.cno=c.cno (4)select sno fromsc sc1 where cno=’k1’ and exists (select * fromsc sc2 where sc1.sno =sc2.sno and sc2.cno=’k5’)

(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where sc.cno=c.cno and s.sno=sc.sno)

(6)delete from sc where sno in (select sno from s where sex=’男’)

cno k1 k1 k1 k5 k5 k8 grade 83 85 92 90 84 80 数据库原理 程军 编译原理 程军

或 delete sc from sc,s where s.sno=sc.sno and sex=’男’

2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅日期,还期)。其中,读者类别为字符型,可以取值‘学生’和‘教师’,图书类别为字符型,取值为‘经济类’、‘管理类’、‘外语类’、‘计算机类’等。试用SQL语句完成下列查询。 对图书借阅数据库完成以下操作:

(1)查询借阅了作者为“张强”的图书的读者编号和图书编号。

(2)创建一个视图v1,该视图用来查询教师的借阅情况,要求包含:教师姓名、书名、借阅日期、还期。 (3)查询所借的书名中包含“程序设计”这四个字的读者的读者编号和借阅日期。 (4)根据图书类别统计各类图书的借书数量并按数量由大到小排序。 (5)删除出版社是“电子出版社”的借书记录。

(6)查询借阅了“电子出版社”和“机械出版社”出版的图书的读者编号。

3.现有关系数据库如下:

学生(学号,姓名,性别,专业、奖学金) 课程(课程号,课程名,学分) 选课(学号,课程号,分数)

(1)列出学号为“98001”的已有成绩的各门课名称与成绩。 (2)删除姓名为“陈红”的所有选课记录。

(3)检索获得奖学金、并且至少有一门课程成绩在90分以上的学生信息,包括学号、姓名和专业。 (4)将对选课表的全部权限授予用户王平,并且王平可以授权给其它用户。 (5)求学号为“785222”的学生所选课程的总学分。 (6)将课程名为“数据库”的成绩置为0。 (7)在选课情况表中插入各门课的选课信息。

参考答案:

1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’女’)

(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and sc.cno=c.cno (4)select sno fromsc sc1 where cno=’k1’ and exists (select * fromsc sc2 where sc1.sno =sc2.sno and sc2.cno=’k5’)

(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where sc.cno=c.cno and s.sno=sc.sno)

(6)delete from sc where sno in (select sno from s where sex=’ 男’) 或 delete sc from sc,s where s.sno=sc.sno and sex=’ 男’

2.(1)select 读者编号,图书编号 from 借阅,图书 where 借阅.图书编号=图书.图书编号 and 作者 =’张强’

(2)create ciew v1 as select 教师姓名,书名,借阅日期,还期 from 读者,图书,借阅 where 读者.读者编号=借阅. 读者编号 and借阅.图书编号=图书.图书编号 and 读者类别=’教师’

(3)select读者编号, 借阅日期 from图书,借阅 where 借阅.图书编号=图书.图书编号 and 书名 like ‘%程序设计%’

(4)select 图书类别,count(图书编号) from 图书,借阅 where 借阅.图书编号=图书.图书编号 group by图书类别 order by count(图书编号) desc

(5)delete 借阅 from 图书,借阅 where 借阅.图书编号=图书.图书编号 and 出版社= ‘电子出版社’

或 delete from 借阅 where 图书编号 in (select 图书编号 from 图书 where出版社= ‘电子出版社’)

(6)select 读者编号 from 读者 a where exists (select * from借阅 w1 where a. 读者编号=w. 读者编号 and 图书编号 in (select图书编号 from图书 where出版社=‘电子出版社’) and exists (select * from 借阅 w2 where 图书编号 in (select图书编号 from图书 where出版社=‘机械出版社’ and a.读者编号=w2. 读者编号)

3.(1)SELECT 课程名,成绩 FROM 课程,选课 WHERE 课程.课程号=选课.课程号 AND 学号=“98001”

AND 成绩 IS NOT NULL

(2)DELETE FROM 选课 WHERE 学号 IN (SELECT 学号 FROM 学生 WHERE 姓名=’陈红’)

(3)SELECT 学号,姓名,专业 FROM 学生 WHERE 奖学金>0 AND EXISTS (SELECT * FROM 选课 WHERE 学生.学号=选课.学号 AND 成绩>95) (4)GRANT ALL PRIVILEGES ON 选课 TO 王平 WITHGRANTOPTION

(5)SELECT SUM(学分) FROM 学生,选课,课程 WHERE 学生.学号=选课.学号 AND

选课.课程号=课程.课程号 AND 学号=“785222”

(6)UPDATE 选课 SET 成绩=0 WHERE 课程号=(SELECT 课程号 FROM 课程 WHERE 课程名=“数据库”

(7)INSERT INTO选课情况 SELECT 课程号,课程名,COUNT(*) FROM 选课 GROUP BY 课程号

搜索更多关于: SQL语句练习及参考答案 的文档
SQL语句练习及参考答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3tsa45du13207lq1bah6_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top