- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理与应用实验答案
【篇一:数据库原理与应用实验作业参考答案】
=txt 实验 1 数据库的建立修改与删除
实验 2 表结构的建立修改删除及完整性约束条件定义 实验 3 数据查
询与更新
(一 ) 规定内容
1. 单表查询
use st
--[3_1] 查询全体学生的详细记录。
select * from student
--[3_2] 查询选修了课程的学生学号。
select distinct sno from sc
--[3_3] 将“学生 ”表中的 sno 、 sname 这 2 列合并为 1 列
snosname 输出 (不改变表中存储的内容 ),其余列不变。
select sno+sname snosname,ssex,sage,sdept
from student
--[3_4] 查询年龄不在 20~23 岁之间的学生姓名、系别和年龄。
方法 1:
select sname,sdept,sage
fromstudent
where sage not between 20 and 23;
方法 2:
select sname,sdept,sage
fromstudent
where sage20 or sage23;
--[3_5] 查询计算机科学系 (cs) 、数学系 (ma) 和信息系 (is) 学生的姓名
和性别。 select sname,ssex
from student
where sdept in ( cs,ma,is );
--[3_6] 查询所有姓 “刘 ”学生的姓名、学号和性别。
select sname,sno,ssex
from student
where sname like
刘 %;
--[3_7] 查询名字中第
2 个字为阳字的学生的姓名和学号。
select sname,sno
from student
where sname like _
阳%;
--[3_8]
某些学生选修课程后没有参加考试,所以有选课记录,但没
有考试成绩。
--查询缺少成绩的学生的学号和相应的课程号。
select sno,cno from sc
where grade is null;
--[3_9] 查询计算机系年龄在 20 岁以下的学生姓名。
select sname
from student
where sdept=cs and sage20;
--[3_10] 查询选修了 3 号课程的学生的学号及其成绩,查询结果按
分数降序排列。 select sno,grade
from sc
where cno=3
order by grade desc;
--[3_11] 查询全体学生情况,查询结果按所在系升序排列,同一系
中的学生按性别降序排列。
select *
from student
order by sdept,sage desc;
-- 使用集函数
--[3_12] 查询学生总人数。
select count(*) 学生总人数
from student;
--[3_13] 查询选修了课程的学生人数。
select count(distinct sno) 选课人数
--注 :用
distinct
以避免重复计
算学生人数 from sc;
--[3_14] 计算 1 号课程的最高、最低及平均成绩。
select max(grade) 1 号课程最高分 , max(grade) 1
avg(grade) 1 号课程平均成绩
from sc
where cno=1
--[3_15] 查询学生 200215121 选修课程的平均成绩。
select avg(grade) 学生 200215121 平均成绩
from sc
where sno=2002151
21
--[3_16] 查询学生 200215122 选修课程的总学分数。
号课程最低分
,
select sum(ccredit)
学生 200215122
学分
from sc,course
where sc.cno=course.cno and sno=200215122; -- 使用 group by 子句分组
--[3_17] 求各个课程号及相应的选课人数。
select cno 课程号 ,count(sno) 选课人数 fromsc
group by cno;
使用 having 短语筛选最终分组结果
--[3_18]
查询选修了
3 门(含 3) 以上课程的学生学号。
select sno
from sc
group by sno
having
count(*)=3 --
也可为 :count(cno)=3
--[3_19]
查询有 2 门以上课程是 80 分以上
原创力文档


文档评论(0)