数据库原理及其应用实验代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2 数据查询
(1)查询性别为“男”的所有学生的名称并按学号升序排列。
SELECT Sname
FROM Students
WHERE Ssex='男'
ORDER BY Sno
(2)查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。积分的计算公式为:[1+(考试成绩-60)*0.1]*Ccredit。考试成绩>=60 否则=0
SELECT Sno, Tno, o, Score, 'Point of Score',
CONVERT(FLOAT(1), (Score-60)*0.1*Ccredit+Ccredit)
FROM Courses, Reports
WHERE Score>=60 AND o=o
UNION
SELECT Sno, Tno, o, Score, 'Point of Score', 0
FROM Courses, Reports
WHERE o=o AND (Score < 60 OR Score IS
NULL)
(3)查询学分是3或4的课程的名称。
SELECT Cname
FROM Courses
WHERE Ccredit IN('3','4')
(4)查询所有课程名称中含有“算法”的课程编号。
SELECT Cname
FROM Courses
WHERE Cname LIKE '%算法%'
/*查询得到算法分析与设计、数据结构与算法分析*/
(5)查询所有选课记录的课程号(不重复显示)。
SELECT DISTINCT Cno FROM Reports
(6)统计所有老师的平均工资。
SELECT A VG(Tsalary) FROM Teachers
(7)查询所有教师的编号及选修其课程的学生的平均成绩,按平均成绩降序排列。
SELECT Tno,A VG(Score)
FROM Reports
GROUP BY Tno
ORDER BY A VG(Score) DESC
(8)统计各个课程的选课人数和平均成绩。
SELECT Cno,COUNT(Sno),A VG(Score)
FROM Reports
GROUP BY Cno
(9)查询至少选修了三门课程的学生编号和姓名。
SELECT Sno,Sname
FROM Students
WHERE Sno IN
(
SELECT Sno
FROM Reports
GROUP BY Sno
HA VING COUNT(*)>=3
)
(10)查询编号S26的学生所选的全部课程的课程名和成绩。
SELECT ame,Reports.Score
FROM Courses,Reports
WHERE Reports.Sno='S26' AND o=o
(11)查询所有选了“数据库原理及其应用”课程的学生编号和姓名。
SELECT Sno,Sname
FROM Students
WHERE Sno IN
(
SELECT Reports.Sno
FROM Reports,Courses
WHERE o=o AND ame='数据库原理
及其应用'
)
(12)求出至少被两名学生选修的课程编号。
SELECT DISTINCT o
FROM Reports X,Reports Y
WHERE o=o AND X.Sno (13)查询选修了编号S26的学生所选的某个课程的学生编号。 SELECT Y.Sno FROM Reports X,Reports Y WHERE o=o AND X.Sno='S26' /*注:在本题中,如果要求是“查询选修了编号S26的学生所选的某个课程的其他学生编号”时,也就是不包含编号S26学生自身的情况时,在查询条件WHERE中,还需要加上条件X.Sno (14)查询学生的基本信息及选修课程编号和成绩。 SELECT Students.Sno,Students.Sname,Students.Semail,Students.Scredit,Students. Ssex,o,Reports.Score FROM Students JOIN Reports ON Students.Sno=Reports.Sno (15)查询学号S52的学生的姓名和选修的课程名称及成绩。 SELECT Students.Sname,ame,Reports.Score FROM Students,Courses,Reports WHERE Students.Sno=Reports.Sno AND o=o AND Students.Sno='S52' (16)查询和学号S52的学生同性别的所有学生资料。 SELECT * FROM Students WHERE Ssex=( SELECT Ssex FROM Students WHERE Sno='S52' ) (17)查询所有选课的学生的详细信息。 SELECT * FROM Students WHERE Sno IN ( SELECT Sno FROM Reports ) (18)查询没有学生选的课程的编号和名称。 SELECT Cno,Cname FROM Courses WHERE Cno NOT IN ( SELECT Cno FROM Reports ) (19)查询选修了课程名为C++的学生学号和姓名。 SELECT Sno,Sname FROM Students WHERE Sno IN (