1、 查询Student表中的所有记录的Sname、Ssex和Sclass列。
SELECT sname ,ssex,sclass
FROM student
2、 查询教师所有的单位即不重复的Depart列
SELECTDISTINCT depart
FROM teacher
3、 查询Student表的所有记录。
SELECT*FROM student
4、 查询Score表中成绩在60到80之间的所有记录。
SELECT*FROM score
WHERE degree BETWEEN60AND805、 查询Score表中成绩为85,86或88的记录。
SELECT*FROM SCORE
WHERE degree IN(85,86,88)6、 查询Student表中“95031”班或性别为“女”的同学记录。
SELECT*FROM student
WHERE ssex='女'OR sclass='95031'7、 以Class降序查询Student表的所有记录
SELECT*FROM student
ORDERBY Sclass DESC8、 以Cno升序、Degree降序查询Score表的所有记录。
SELECT*FROM score
ORDERBY cno ASC,degree DESC9、 查询“95031”班的学生人数。
SELECTCOUNT(*) 人数
FROM student
WHERE sclass='95031'GROUPBY sclass
10、查询Score表中的最高分的学生学号和课程号。
SELECT sno,cno,MAX(degree)FROM score
11、查询‘3-105’号课程的平均分
SELECTAVG(degree)FROM score
WHERE cno='3-105'12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
SELECTAVG(degree)FROM score
GROUPBY cno
HAVINGCOUNT(*)>=5AND cno LIKE'3%'13、查询最低分大于70,最高分小于90的Sno列。
SELECT sno
FROM score
WHERE degree>=70AND degree<=9014、查询所有学生的Sname、Cno和Degree列。
SELECT sname ,cno,degree
FROM student ,score
WHERE score.`SNO`=student.`SNO`16、查询所有学生的Sname、Cname和Degree列。
SELECT stu.sname,cou.cname,sco.degree
FROM student stu,course cou,score sco
WHERE stu.sno=sco.sno
AND sco.cno=cou.cno
#17、查询“95033”班所选课程的平均分。SELECTAVG(s1.degree) 平均分
FROM(SELECT*FROM score sc,student st
WHERE sc.sno=st.sno
HAVING SCLASS='95033') s1
18、假设使用如下命令建立了一个grade表:
CREATETABLE grade(
low INTEGER,
upp INTEGER,
rank CHAR(1));INSERTINTO grade VALUES(90,100,'A');INSERTINTO grade VALUES(80,89,'B');INSERTINTO grade VALUES(70,79,'C');INSERTINTO grade VALUES(60,69,'D');INSERTINTO grade VALUES(0,59,'E');COMMIT;
现查询所有同学的Sno、Cno和rank列。//非等值连接SELECT sno,cno,rank
FROM score sc,grade gr
WHERE degree BETWEEN gr.low AND gr.upp
19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。
SELECT sc.*FROM student st,score sc
WHERE st.sno=sc.sno
AND sc.cno='3-105'AND sc.degree>(SELECT degree
FROM score
WHERE sno=109AND cno='3-105')20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。
SELECT sc.*FROM score sc
21、查询成绩高于学号为“109”、课程号为“3-105”的成绩的所有记录。
SELECT sc.*FROM score sc
WHERE sc.cno='3-105' 课程号为“3-105”
WHERE sc.degree>(SELECT DEGREES 学号为“109FROM score
WHERE sno=109AND cno='3-105')22、查询和学号为108的同学同年出生的所有学生的Sno、Sname和Sbirthday列。//YEAR()函数SELECT sno,sname, SBIRTHDAY
FROM student
WHEREYEAR(SBIRTHDAY)=(SELECTYEAR(SBIRTHDAY)FROM student
WHERE sno=108)23、查询“张旭“教师任课的学生成绩。//三表等值连接SELECT sc.DEGREE
FROM teacher t INNERJOIN course c INNERJOIN score sc
ON(t.TNO=c.TNO AND c.CNO=sc.CNO)WHERE t.TNAME='张旭';24、查询选修某课程的同学人数多于5人的教师姓名。
SELECT t.TNAME
FROM teacher t
WHERE t.TNO=(SELECT c.TNO
FROM course c,score sc
WHERE sc.CNO=c.CNO
GROUPBY sc.cno
HAVINGCOUNT(*)>5);25、查询95033班和95031班全体学生的记录。
SELECT*FROM student
WHERE sclass IN(95033,95031)26、查询存在有85分以上成绩的课程Cno.SELECT cno
FROM score
WHERE degree >=8527、查询出“计算机系“教师所教课程的成绩表。
SELECT sc.*FROM score sc INNERJOIN teacher te INNERJOIN course co
ON(sc.cno=co.cno AND co.tno=te.tno)WHERE`DEPART`='计算机系'28、查询“计算机系”与“电子工程系“不同职称的教师的Tname和Prof。
SELECT tea.tname ,tea.prof
FROM teacher te,teacher tea
WHERE te.depart=tea.depart AND te.prof<>tea.prof
29、查询选修编号为“3-105“课程且成绩至少高于选修编号为“3-245”的同学的Cno、Sno和Degree,
并按Degree从高到低次序排序。
SELECT cno, sno, degree
FROM score a
WHERE cno='3-105'AND degree>(SELECT degree FROM score b WHERE cno='3-245'AND a.sno=b.sno)ORDERBY degree DESC;31、查询所有教师和同学的NAME、sex和birthday.UNION 联合查询
SELECT st.sname,st.SSEX,st.SBIRTHDAY
FROM student st
UNIONALLSELECT t.TNAME,t.TSEX,t.TBIRTHDAY
FROM teacher t;32、查询所有“女”教师和“女”同学的NAME、sex和birthday.UNION 联合查询
SELECT st.sname,st.SSEX,st.SBIRTHDAY
FROM student st
WHERE st.SSEX='女'UNIONALLSELECT t.TNAME,t.TSEX,t.TBIRTHDAY
FROM teacher t
WHERE t.TSEX='女';33、查询成绩比该课程平均成绩低的同学的成绩表。
SELECT*FROM score sc
WHERE sc.DEGREE<(SELECTAVG( DEGREE)FROM score WHERE sc.CNO=score.CNO);34、查询所有任课教师的Tname和Depart.SELECT tname ,depart
FROM teacher
WHERE prof<>'助教'35 查询所有未讲课的教师的Tname和Depart.SELECT tname ,depart
FROM teacher
WHERE prof<=>'助教'36、查询至少有2名男生的班号。
SELECTDISTINCT s.SCLASS
FROM student s
WHERE s.SCLASS IN(SELECT ss.SCLASS
FROM student ss
WHERE ss.SSEX='男'GROUPBY ss.SCLASS
HAVINGCOUNT(*)>=2);37、查询Student表中不姓“王”的同学记录。
SELECT*FROM student
WHERE sname NOTLIKE'王%'39、查询Student表中最大和最小的Sbirthday日期值。
SELECTMAX(SBIRTHDAY),MIN(SBIRTHDAY)FROM student
40、以班号和年龄从大到小的顺序查询Student表中的全部记录
SELECT*FROM student
ORDERBY sclass DESC,SBIRTHDAY ASC41、查询“男”教师及其所上的课程。
SELECT t.tname ,co.cname
FROM teacher t ,course co
WHERE t.tno=co.tno
43、查询和“李军”同性别的所有同学的Sname.SELECT sname
FROM student
WHERE ssex LIKE(SELECT ssex FROM student WHERE sname='李军')44、查询和“李军”同性别并同班的同学Sname.SELECT sname
FROM student
WHERE ssex LIKE(SELECT ssex FROM student WHERE sname='李军')AND sclass =(SELECT sclass FROM student WHERE sname='李军')45、查询所有选修“计算机导论”课程的“男”同学的成绩表
SELECT sc.*FROM score sc INNERJOIN student st INNERJOIN course co
ON( sc.cno=co.cno AND st.sno=sc.sno)WHERE co.cname='计算机导论'AND st.ssex='男'