一、上机目的:
熟悉数据表查询(单表查询)
二、上机要求
基于实验一创建的表,完成下列单表查询
(1) 查询全体教师的教师号、姓名和职称
SELECT Tno 教师号, Tn 姓名, Prof 职称 FROM T;
(2)查询学生的全部信息
SELECT * FROM S;
(3)查询选修了课程的学生号
SELECT DISTINCT Sno FROM SC;
(4)查询全体学生的姓名、学号和年龄。
SELECT Sn 姓名,Sno 学号,Age 年龄 FROM S;
(5)查询选修课程号为’C3’的学生的学号和成绩。
SELECT Sno,CNo,Score FROM SC WHERE CNo='C3';
(6)查询成绩高于70分的学生的学号、课程号和成绩。
SELECT Sno,CNO,Score FROM SC WHERE Score >70;
(7)查询选修了C3或C4且分数大于等于60分学生的学号、课程号和成绩.
SELECT Sno,CNo,Score FROM SC WHERE Score>60 AND CNo IN ('C3','C4');
(8)查询岗位津贴在1000~1500元之间的教师的教师号、姓名及职称。
SELECT TNo,TN,Prof FROM T WHERE Sal BETWEEN 1000 AND 1500;
(9)查询岗位津贴不在1000~1500之间的教师的教师号、姓名及职称。
SELECT TNo,TN,Prof FROM T WHERE Sal NOT BETWEEN 1000 AND 1500;
(10)查询选修C3或C4的学生的学号、课程号和成绩。
SELECT Sno,CNo,Score FROM SC WHERE CNo IN('C3','C4');
(11)查询没有选修C3,也没有选修C4的学生的学号、课程号和成绩。
SELECT Sno,CNo,Score FROM SC WHERE CNo NOT IN('C3','C4');
(12)查询所有姓“王”的教师的教师号和姓名。
SELECT TNo,TN FROM T WHERE TN LIKE('王%%');
(13)查询姓名中第二个汉字是“雪”的教师的教师号和姓名。
SELECT TNo,TN FROM T WHERE TN LIKE('%雪%');
(14)查询姓名中第三个符号是“%”的学生学号和姓名。
SELECT Sno,Sn FROM S WHERE Sn LIKE('__%%');
(15)查询没有考试成绩的学生的学号和相应的课程号。
SELECT Sno,CNo FROM SC WHERE Score IS NULL;
(16)求学号为S5的学生的总分和平均分。
SELECT SUM(Score)SUMScore,AVG(Score)AVGScore FROM SC WHERE Sno='S5';
(17)求选修C1号课程的最高、最低分及之间相差的分数
SELECT MAX(Score)-MIN(Score) 差值 FROM SC WHERE CNo='C1';
(18)求学校中共有多少个系。
SELECT COUNT(DISTINCT Dept) Dept FROM T;
(19)统计有成绩同学的人数。(成绩为0的同学也计算在内,没有成绩(即为空值)的就不计算。
SELECT COUNT(DISTINCT Sno) FROM SC WHERE Score IS NOT NULL;
(20)求计算机系学生的总数。
SELECT COUNT(Sno) FROM S WHERE Dept LIKE('计算机');
(21)查询各个教师的教师号及其任课的门数。
SELECT TNo,COUNT(CNo) FROM TC GROUP BY TNo;
(22)查询选修两门以上课程的学生的学号和选课门数。
SELECT Sno,COUNT(CNo) FROM SC GROUP BY Sno HAVING COUNT(CNo)>2;
(23)查询选修C2的学生学号和成绩,并按成绩升序排列。
SELECT Sno,Score FROM SC WHERE CNo='C2' ORDER BY Score;
(24)查询选修C2、C3、C4或C5课程的学号、课程号和成绩,查询结果按学号升序排列,学号相同再按成绩降序排列。
SELECT Sno,CNo,Score FROM SC
WHERE CNo IN('C2','C3','C4','C5')
ORDER BY Sno ASC,Score DESC;
(25)查询选课在三门及以上(包含三门)且各门课程均及格的学生的学号及其总成绩,查询结果按总成绩降序列出
SELECT Sno,SUM(Score) FROM SC
WHERE Score > 60
GROUP BY Sno HAVING COUNT(Sno)>=3
ORDER BY SUM(Score) DESC;
注意:
第16题 SUM(Score)SUMScore 后面的SUMScore是为后面查询出来的列命名 你可以设置为任一名字并不一定要跟博主一样以此类推
第24题 由于MySQL默认是升序,但是为了区分还是在Sno后面加上了ASC(升序),由于学号相同再按成绩降序排列 因此在Score后面添加 DESC 表示降序
第二章练习到此结束......明天将进行第三章练习的更新,禁止摘抄,违权必究,摘录文章发表要 表明出处