南开大学滨海学院数据库SQL程序80选17考

2020-03-27 07:21

钟阳 整理

例1:查询全体学生的学号与姓名。 SELECT Sno, Sname FROM Student

例2.查询全体学生的姓名、学号、所在系 SELECT Sname, Sno, Sdept FROM Student 例3.查询全体学生的详细信息 SELECT * FROM Student

例4.查询全体学生的姓名及其出生年份。 SELECT Sname,2015-Sage FROM Student

例5.查询全体学生的姓名和出生年份所在系,并在出生年份列前加入一个列,此列的每行数据均为“出生年份”常量值。

SELECT Sname,'出生年份:', 2015-Sage FROM Student 例6.查询选修了课程的学生的学号 SELECT Sno FROM SC

例7.查询计算机系全体学生的姓名。 SELECT Sname FROM Student WHERE Sdept = '计算机系‘

例8.查询年龄在20岁以下的学生的姓名及年龄。 SELECT Sname, Sage FROM Student WHERE Sage < 20

例9.查询考试成绩有不及格的学生的学号 SELECT DISTINCT Sno FROM SC WHERE Grade < 60

例10.查询年龄在20~23岁之间的学生的姓名、所在系和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 20 AND 23

例11.查询年龄不在20~23之间的学生姓名、所在系和年龄。 SELECT Sname, Sdept, Sage FROM Student WHERE Sage NOT BETWEEN 20 AND 23

例13.查询信息系、数学系和计算机系学生的姓名和性别。 SELECT Sname, Ssex FROM Student

WHERE Sdept IN ('信息系', '数学系','计算机系')

例14.查询既不是信息系、数学系,也不是计算机系的学生的姓名和性别 SELECT Sname, Ssex FROM Student

WHERE Sdept NOT IN ('信息系', '数学系', '计算机系') 例15.查询姓‘张’的学生的详细信息。 SELECT * FROM Student WHERE Sname LIKE '张%'

例16.查询学生表中姓‘张’、‘李’和‘刘’的学生的情况。 SELECT * FROM Student

WHERE Sname LIKE '[张李刘]%'

例17.查询名字中第2个字为‘小’或‘大’的学生的姓名和学号。 SELECT Sname, Sno FROM Student WHERE Sname LIKE '_[小大]%'

钟阳 整理

例18.查询所有不姓“王”也不姓“张”的学生姓名 SELECT Sname FROM Student WHERE Sname NOT LIKE '[王张]%'

例19.查询姓“王”且名字是2个字的学生姓名。 SELECT Sname FROM Student

WHERE Sname LIKE '王_'

例20.查询姓王且名字是3个字的学生姓名 SELECT Sname FROM Student

WHERE Sname LIKE '王__'

例21. 在Student表中查询学号的最后一位不是2、3、5的学生信息。 SELECT * FROM Student WHERE Sno LIKE '%[^235]'

例22.查询没有考试成绩的学生的学号和相应的课程号。 SELECT Sno, Cno FROM SC WHERE Grade IS NULL

例23.查询所有有考试成绩的学生的学号和课程号。 SELECT Sno, Cno FROM SC WHERE Grade IS NOT NULL

例24.查询计算机系年龄在20岁以下的学生姓名。 SELECT Sname FROM Student

WHERE Sdept = '计算机系' AND Sage < 20

例25.查询计算机系和信息系年龄大于等于20岁的学生姓名、所在系和年龄。 SELECT Sname,Sdept, Sage FROM Student WHERE (Sdept = '计算机系'

OR Sdept = '信息系')

AND Sage >= 20

例26.将学生按年龄的升序排序。 SELECT * FROM Student ORDER BY Sage

例27.查询选修了c02号课程的学生的学号及其成绩,查询结果按成绩降序排列。 SELECT Sno, Grade FROM SC

WHERE Cno='c02' ORDER BY Grade DESC

例28.查询全体学生的信息,查询结果按所在系的系名升序排列,同一系的学生按年龄降序排列。

SELECT * FROM Student

ORDER BY Sdept, Sage DESC

例29.统计学生总人数。

SELECT COUNT(*) FROM Student

例30.统计选修了课程的学生的人数。 SELECT COUNT (DISTINCT Sno) FROM SC

例31.统计9512101号学生的考试总成绩之和。 SELECT COUNT(*) AS 选课门数,SUM(Grade) AS 总成绩 FROM SC

WHERE Sno = ‘9512101’

COUNT(*) 数个数,数选课表每个同学的选课记录就是选课门数

钟阳 整理

例32.计算C01号课程学生的考试平均成绩。 SELECT AVG(Grade) AS 平均成绩 FROM SC WHERE Cno='C01'

例33.查询C01号课程的考试最高分和最低分。

SELECT MAX(Grade) AS 最高分, MIN(Grade) AS 最低分 FROM SC WHERE Cno='C01'

例34.查询“9512101”学生的选课门数、已考试课程门数以及考试最高分、最低分和平均分。

SELECT COUNT(*) AS 选课门数, COUNT(Grade) AS 考试门数, MAX(Grade) AS 最高分, MIN(Grade) AS 最低分, AVG(Grade) AS 平均分

FROM SC WHERE Sno = '9512101‘

例35.统计每门课程的选课人数,列出课程号和人数。 SELECT Cno as 课程号, COUNT(Sno) as 选课人数 FROM SC GROUP BY Cno

例36.查询每个学生的选课门数和平均成绩。 SELECT Sno as 学号, COUNT(*) as 选课门数, AVG(Grade) as 平均成绩 FROM SC GROUP BY Sno

例37.统计每个系的学生人数和平均年龄。 SELECT Sdept, COUNT(*) AS 学生人数, AVG(Sage) AS 平均年龄 FROM Student GROUP BY Sdept

例38. 带WHERE子句的分组。统计每个系的女生人数。 SELECT Sdept, Count(*) 女生人数 FROM Student WHERE Ssex = '女' GROUP BY Sdept

例39. 按多列分组。统计每个系的男生人数和女生人数,以及男生的最大年龄和女生的最大年龄。结果按系名的升序排序。 SELECT Sdept, Ssex, Count(*) 人数, Max(Sage) 最大年龄 FROM Student

GROUP BY Sdept, Ssex ORDER BY Sdept

例40. 查询选修了3门以上课程的学生的学号和选课门数。 SELECT Sno, Count(*) 选课门数 FROM SC GROUP BY Sno

HAVING COUNT(*) > 3

钟阳 整理

例41.查询修课门数等于或大于4的学生的平均成绩和选课门数。 SELECT Sno, AVG(Grade) 平均成绩, COUNT(*) 修课门数 FROM SC

GROUP BY Sno

HAVING COUNT(*) >= 4

例42. 查询计算机系和信息管理系的学生人数。 SELECT Sdept, COUNT(*) FROM Student GROUP BY Sdept

HAVING Sdept IN ( '计算机系', '信息管理系')

例43. 查询每个系年龄小于等于20岁的学生人数。 SELECT Sdept, COUNT (*) FROM Student WHERE Sage <= 20 GROUP BY Sdept

例44.查询每个学生及其选课的详细信息。 SELECT * FROM Student INNER JOIN SC ON Student.Sno = SC.Sno

例46.查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。 SELECT Sname, Cno, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno WHERE Sdept = '计算机系'

例47. 查询信息系修了“计算机文化学”课程的学生信息,要求列出学生姓名、课程名和成绩。

SELECT Sname, Cname, Grade FROM Student s JOIN SC ON s.Sno = SC. Sno

JOIN Course c ON c.Cno = SC.Cno WHERE Sdept = '信息系' AND Cname = '计算机文化学'

例48.查询所有修了VB课程的学生的修课情况,要求列出学生姓名和所在系。 SELECT Sname, Sdept FROM Student S JOIN SC ON S.Sno = SC. Sno

JOIN Course C ON C.Cno = SC.cno WHERE Cname = 'VB'

例49.有分组的多表连接查询。统计每个系的学生考试平均成绩。 SELECT Sdept, AVG(grade) as AverageGrade FROM student S

JOIN SC ON S.Sno = SC.Sno GROUP BY Sdept

钟阳 整理

例50.有分组和行选择条件的多表连接查询。统计计算机系每门课程的选课人数、平均成绩、最高成绩和最低成绩。 SELECT Cno, COUNT(*) AS Total, AVG(Grade) as AvgGrade, MAX(Grade) as MaxGrade, MIN(Grade) as MinGrade

FROM Student S JOIN SC ON S.Sno = SC.Sno WHERE Sdept = '计算机系' GROUP BY Cno

例51. 查询与刘晨在同一个系学习的学生的姓名和所在的系。 SELECT S2.Sname, S2.Sdept

FROM Student S1 JOIN Student S2 ON S1.Sdept = S2.Sdept

WHERE S1.Sname = '刘晨' AND S2.Sname != '刘晨'

例52.查询与“操作系统”学分相同的课程的课程名和学分。 SELECT C1.Cname, C1.Credit FROM Course C1 JOIN Course C2 ON C1.Credit = C2. Credit

WHERE C2.Cname = '操作系统'

例53. 查询学生的修课情况,包括修了课程的学生和没有修课的学生。 SELECT Student.Sno, Sname, Cno, Grade FROM Student LEFT OUTER JOIN SC ON Student.Sno = SC.Sno

例54. 查询哪些课程没有人选,列出其课程名。 SELECT Cname

FROM Course C LEFT JOIN SC ON C.Cno = SC.Cno WHERE SC.Cno IS NULL

例55. 查询计算机系没有选课的学生,列出学生姓名和性别。 SELECT Sname,Sdept,Cno,grade FROM Student S LEFT JOIN SC ON S.Sno = SC.Sno

WHERE Sdept = '计算机系'

例56. 统计计算机系每个学生的选课门数,包括没有选课的学生,结果按选课门数递减排序。

SELECT S.Sno AS 学号,

COUNT(SC.Cno) AS 选课门数 FROM Student S LEFT JOIN SC ON S.Sno = SC.Sno

WHERE Sdept = '计算机系' GROUP BY S.Sno

ORDER BY COUNT(SC.Cno) DESC AND SC.Sno IS NULL


南开大学滨海学院数据库SQL程序80选17考.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《物理化学》(下册)期末模拟试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: