sql查询语句练习
SQL查询练习

SQL查询练习SQL查询练习⼀、有三个关系,试⽤关系代数表达式表⽰下列查询语句:S(sno,sname,age,sex,sdept)C(cno,cname,cdept,tname) tname表⽰授课⽼师名SC(sno,cno,grade)(1) 检索年龄⼩于22岁的男学⽣的学号与姓名。
(2) 检索学号为S3学⽣所学课程的课程名与任课教师名。
(3) 检索王⽼师所授课程的课程号、课程名。
(4) 检索⾄少选修王⽼师所授课程中⼀门课的男学⽣姓名。
(5) 检索陈同学不学的课程的课程号。
(6) 检索全部学⽣都选修的课程的课程号、课程名。
(7) 检索选修课程包含王⽼师所授课程的学⽣学号。
(8) 检索⾄少选修两门课程的学⽣学号。
(9) 查询⾄少选修了2号课程和8号课程的学⽣姓名。
(10) 查询张红的年龄。
(11) 查询李明同学不及格的课程名称。
(12) 查询选修了“计算机⽹络”的学⽣姓名。
(13) 查询“计算机⽹络”成绩在90分以上的学⽣姓名。
⼆、设有下列四个关系模式:S (SNO, SNAME, CITY);P (PNO, PNAME, COLOR, WEIGHT);J (JNO, JNAME, CITY);SPJ(SNO, PNO, JNO, QTY)。
其中,供应商关系S由供应商号(SNO)、供应商姓名(SNAME)、供应商所在城市(CITY)组成。
零件关系P由零件号(PNO)、零件名称(PNAME)、零件颜⾊(COLOR)、零件重量(WEIGHT)组成,⽤于记录各种零件的情况。
项⽬关系J由项⽬号(JNO)、项⽬名称(JNAME)、项⽬所在城市(CITY) 组成。
供应情况关系SPJ由供应商号(SNO)、零件号(PNO)、项⽬号(JNO)、供应数量(QTY) 组成。
试⽤关系代数表达式完成以下操作:(1) 检索供应项⽬J2零件的供应商号(SNO)。
(2) 检索供应项⽬J2零件P2的供应商号(SNO)。
(3) 检索供应项⽬J2⿊⾊零件的供应商姓名(SNAME)。
sql查询练习

1.查询全体学生的学号和姓名.select 学号,姓名from 学生2.查询全体学生的姓名,学号,所在系.select 学号,姓名,系from 学生3.查询全体学生的详细记录select * from 学生4.查询全体学生的姓名及其出生年份select 姓名,2006-年龄from 学生[意思是2008减年龄]5.查询选修了课程的学生学号select distinct学号from 选课6.查询2系全体学生的名单.select 姓名from 学生where 系=”2”7.查询所有年龄在20岁以下的学生姓名及年龄.select 姓名,年龄from 学生where 年龄<=208.查询考试成绩有不及格的学生的学号.select distinct 学号from 选课where 成绩<609.查询年龄在20~~23岁(包括20和23岁)之间的的学生的姓名,系别,年龄.select 姓名,系,年龄from 学生where 年龄between 20 and 2310.查询1系,2系,3系的学生的姓名和性别select 姓名,性别from 学生where 系别in (“1”,”2”,”3”) [in 实际上是多个or 运算符的缩写]。
我们也可以写成这样:select 姓名,性别from 学生where 系=’1’or 系=’2’or 系=’3’11.查询既不是1系,2系也不是3系的学生的姓名和性别.select 姓名,性别from 学生where 系not in (“1”,”2”,”3”)12.查询学号为s3的学生的详细情况.select * from 学生where 学号like “s3”)或者(select * from 学生where 学号=”s3”13.查询所有的姓刘的学生的姓名,学号和性别.select 姓名,学号,性别from 学生where 姓名like ‘刘%’14.查询姓”欧阳”且全名为三个字的学生的姓名.select 姓名from 学生where 姓名like “欧阳_ ”15.查询名字中第二个字为”阳”字的学生的姓名和学号.select 姓名,学号from 学生where 姓名like “ _阳%”16.某些学生选修课程后没有参加考试,所以有选课记录,但是没有考试成绩.查询缺少成绩的学生的学号和相应的课程号select 学号,课程号from 选课where 成绩is null17.查询所有有成绩的学生学号和课程号.select 学号,课程号from 选课where 成绩is not null18.(多重条件查询)查询1系年龄在20岁以下的学生姓名.select 姓名from 学生where 系=’1’and 年龄<2019.(对查询结果进行排序)查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列.select 学号,成绩,from 选课where 课程号=’3’ order by 成绩desc20.查询全体学生情况,查询结果按所在系的系号升序排列,同一个系的学生按年龄降序排列.select * from 学生order by 系, 年龄desc21.(使用集函数)查询学生总人数.select count(*) from 学生[count的功能是计数]22.查询选修了课程的学生的总人数.select count (distinct 学号) from 选课23.计算1号课程的学生的平均成绩.select avg(成绩) from 选课where 课程号=’1’24.查询选修1号课程的学生最高分数.select max(成绩) from 选课where 课程号=’1’25.求各个课程号及相应的选课人数.select 课程号,count(学号) from 选课group by 课程号26. 查询选修了3门以上课程的学生的学号.select 学号from 选课group by 学号having count(*)>3[这里先用group by 子句按学号分组,再用集函数count 对每一组计数.having 短语指定选择组的条件,只有满足条件(即元组的个数>3,表示此学生选修的课程超过3门)的组才会被选出来.where 子句与having 短语的区别在于作用的对象不同.where子句作用于基本表或视图,从中选择满足条件的元组.having 短语作用于组,从中选择满足条件的组.]27. 查询每个学生及其选修课程的情况。
SQL语句练习及参考答案

SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表⽰下列查询。
(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。
(2)建⽴性别只能为“男”、“⼥”的约束。
(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学⽣学号(sno)。
(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。
(6)删除所有男同学的选课记录。
1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。
50条数据库sql语句及答案

select teaid from tblTeacher where teaname = '叶平')))
--练习
select stuid from tblScore where courseid in (
--11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;
------运用连接查询
SELECT DISTINCT ST.* FROM tblStudent ST, tblScore SC WHERE ST.STUID = SC.STUID
AND SC.COURSEID IN
select stuid from tblScore GROUP BY STUID HAVING max(SCORE)<60)
--10、查询没有学全所有课的同学的学号、姓名;
--练习
SELECT TS.STUID,TS.STUNAME,COUNT(TSC.SCORE) FROM tblStudent TS
TC.COURSEID INNER JOIN tblTeacher TT ON TC.TEAID = TT.TEAID
WHERE TT.TEANAME ='叶平')
--对
SELECT STUID, STUNAME FROM tblStudent WHERE STUID NOT IN(
where A.SCORE > B.SCORE
--老师讲的方法
SELECT T.* FROM tblScore T WHERE T.COURSEID = 1 AND
SQL查询语句练习资料

SQL查询语句一.单表查询1.选择表中的若干列(即关系代数中的“投影”运算)1)查询指定列例1 查询全体学生的学号和姓名。
SELECT 学号,姓名FROM 学生;2)查询全部列例2 查询全体学生的详细记录。
SELECT *FROM 学生;3)查询经过计算的值例3 查询全体学生的姓名及其年龄。
SELECT 姓名,ROUND ( ( DATE()-出生日期) / 365,1 ) AS 年龄FROM 学生;2.选择表中的若干记录(即关系代数中的“选择”运算)1)消除取值重复的行例4 查询选修了课程的学生学号。
SELECT DISTINCT 学号FROM 成绩;2)查询满足条件的记录a)比较大小例5 查询所有少数民族同学的姓名和民族。
SELECT 姓名,民族FROM 学生WHERE民族<>”汉”b)字符匹配(模糊查询)例6 查询所有姓李的学生的姓名和性别。
SELECT 姓名,性别FROM 学生WHERE 姓名LIKE “李*”;例7 查询所有名字第2个字为“小”的学生姓名和性别。
SELECT 姓名,性别FROM 学生WHERE 姓名LIKE “?小*”;c)涉及空值的查询例8 查询缺少成绩的学生的学号和相应的课程号。
SELECT 学号, 课程编号FROM 成绩WHERE 成绩IS NULL;d)多重条件查询例9 查询所有白族男同学的姓名。
SELECT 姓名FROM 学生WHERE 性别=”男” AND 民族=”白族”;3.对查询结果排序例10查询选修了S0105 课程的学生的学号及其成绩,查询结果按分数降序排列。
SELECT 学号,成绩FROM 成绩WHERE 课程编号=”S0105”ORDER BY 成绩DESC;例11 查询全体学生情况,查询结果按所属院系的编号升序排列,同一系的学生按年龄升序排列。
SELECT *FROM 学生ORDER BY 所属院系ASC,出生日期DESC;4.使用集函数COUNT ([DISTINCT | ALL]*) 统计记录个数COUNT ([DISTINCT | ALL] <>) 统计一列中值的个数SUM ([DISTINCT | ALL] <>) 计算一列值的总和(此列必须是数值型)A VG ([DISTINCT | ALL] <>) 计算一列值的平均值(此列必须是数值型)MAX ([DISTINCT | ALL] <>) 求一列值中的最大值MIN ([DISTINCT | ALL] <>) 求一列值中的最小值例12 查询学生总人数。
SQL查询练习题

设教学数据库中有三个关系: 学生关系 S (S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 (4)C查(C询#,选CN修A课M程E,号TE为ACC2H或ERC)4的学生学号。 SELECT S# FROM SC WHERE C#=‘C2’ OR C#=‘C4’
SQL查询练习题
It is applicable to work report, lecture and teaching
设教学数据库中有三个关系: 学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 C(C#,CNAME,TEACHER) 下面用SQL语句实现下面每个查询: (1)查询学习课程号为C2的学生学号与成绩。
设教学数据库中有三个关系: 学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 C(C#,CNAME,TEACHER)
(17)求年龄大于所有女同学年龄的男学生和年龄。 SELECT SNAME,AGE FROM S WHERE SEX=‘男’ AND AGE>ALL(SELECT AGE FROM S WHERE SEX=‘女’)
设教学数据库中有三个关系: 学生关系 S(S#,SNAME,AGE,SEX) 选课关系 SC(S#,C#,GRADE) 课程关系 C(C#,CNAME,TEACHER)
(13)在SC表中检索成绩为空值的学生学号和课程号。 SELECT S#,C# FROM SC WHERE GRADE IS NULL
SQL查询习题及答案

36.设教学用的四个基本表(S,C,T,SC)(2)查询年龄大于23岁的女同学的学号和姓名select 姓名,学号from swhere 性别='女' and 年龄>23(3)查询至少选修了刘老师所讲授课程中的一门课程的女同学姓名select s.姓名from s,scwhere s.性别='女'and s.学号=sc.学号and sc.课程编号in(select c.课程编号from c,twhere c.教师编号=t.教师编号and t.姓名='刘%')(4)查询至少选修了2门课程的学生学号select sc.学号from scgroup by 学号having count(课程编号)>2(5)查询全部学生都选修的课程号与课程名select c.课程编号,c.课程名称from c,scwhere sc.课程编号=c.课程编号and sc.学号=(select distinct s.学号from s)(6)计算机系每个教师讲授的课程号select t.教师编号,课程编号from c,twhere t.所在系='计算机系(7)查询没有选修过任何一门课程的学生的学号select s.学号from swhere s.学号not in(select distinct sc.学号from sc)(10)统计个系教师的人数select count (教师编号)from tgroup by 所在系(11)统计出教师人数超过10人的系的名称select t.所在系from tgroup by 所在系having count(教师编号)>10(12)在选课表SC中查询成绩为NULL的学生的学号和课程号select 学号课程编号from scwhere 成绩='NULL'(13)姓王的同学的年龄、姓名、选课名称、成绩select 年龄,姓名,课程名称,成绩from s,c,scwhere s.学号=sc.学号and c.课程编号=sc.课程编号and s.姓名='王%'(14)查询年龄大于女同学平均年龄的男同学姓名和年龄select 姓名,年龄from swhere 性别='男' and 年龄>(select avg(年龄)from swhere 性别='女')37.在数据库{USER、ORDER}中,用户需要查询“所有于2009年5月25日下订单的女顾客姓名”。
sql语句练习50题

sql语句练习50题Student(Sid,Sname,Sage,Ssex) 学⽣表Course(Cid,Cname,Tid) 课程表SC(Sid,Cid,score) 成绩表Teacher(Tid,Tname) 教师表练习内容:1.查询“某1”课程⽐“某2”课程成绩⾼的所有学⽣的学号;SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHEREa.score>b.score AND a.sid=b.sid;此题知识点,嵌套查询和给查出来的表起别名2.查询平均成绩⼤于60分的同学的学号和平均成绩;SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60;此题知识点,GROUP BY 语句⽤于结合合计函数,根据⼀个或多个列对结果集进⾏分组。
group by后⾯不能接where,having代替了where3.查询所有同学的学号、姓名、选课数、总成绩SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname4.查询姓“李”的⽼师的个数;select count(teacher.tid)from teacher where teacher.tname like'李%'5.查询没学过“叶平”⽼师课的同学的学号、姓名;SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平');此题知识点,distinct是去重的作⽤6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名;select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a,(select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid;标准答案(但是好像不好使)SELECT Student.S#,Student.Sname FROM Student,SC WHERE Student.S#=SC.S# ANDSC.C#='001'and exists( SELECT * FROM SC as SC_2 WHERE SC_2.S#=SC.S# AND SC_2.C#='002');此题知识点,exists是在集合⾥找数据,as就是起别名7.查询学过“叶平”⽼师所教的所有课的同学的学号、姓名;select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,scwhere teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍'))8.查询课程编号“”的成绩⽐课程编号“”课程低的所有同学的学号、姓名;select a.sid,a.sname from(select student.SID,student.sname,sc.SCORE from student,sc where student.sid=sc.sid and sc.cid=1) a, (select student.SID,student.sname,sc.score from student,sc where student.sid=sc.sid and sc.cid=2) b where a.score<b.score anda.sid=b.sid标准答案:SELECT sid,Sname FROM (SELECT Student.sid,Student.Sname,score ,(SELECT score FROM SC SC_2 WHERE SC_2.sid=Student.sid AND SC_2.cid=1) score2 FROM Student,SCWHERE Student.sid=SC.sid AND cid=1) S_2 WHERE score2 <score;9.查询所有课程成绩⼩于分的同学的学号、姓名;SELECT sid,Sname FROM Student WHERE sid not in (SELECT Student.sid FROM Student,SC WHERE Student.sid=SC.sid AND score>60);此题知识点,先查出⼤于60分的,然后not in 就是⼩于60分的了10.查询没有学全所有课的同学的学号、姓名;SELECT Student.sid,Student.Sname FROM Student,SCWHERE Student.sid=SC.sid GROUP BY Student.sid,Student.Sname having count(cid) <(SELECT count(cid) FROM Course);11.查询⾄少有⼀门课与学号为“”的同学所学相同的同学的学号和姓名;12.查询⾄少学过学号为“”同学所有⼀门课的其他同学学号和姓名;SELECT student.sid,student.Sname FROM Student,SC WHERE Student.sid=SC.sid AND cid in (SELECT cid FROM SC WHERE sid=1)此题知识点,SELECT sid,Sname FROM Student,SC WHERE Student.sid=SC.sid AND cid in (SELECT cid FROM SC WHEREsid=1)这样写是错误的,因为from后⾯是两个表,不能明确是哪个表⾥⾯的sid和sname所以错误提⽰是“未明确定义列”13.把“SC”表中“叶平”⽼师教的课的成绩都更改为此课程的平均成绩;update sc set score=(select avg(score) from sc,course,teacher where course.cid=sc.cid and course.tid=teacher.tid andteacher.tname='杨巍巍')14.查询和“”号的同学学习的课程完全相同的其他同学学号和姓名;SELECT sid FROM SC WHERE cid in (SELECT cid FROM SC WHERE sid=6) GROUP BY sid having count(*)=(SELECT count(*) FROM SC WHERE sid=6);此题知识点,⽤数量来判断15.删除学习“叶平”⽼师课的SC表记录;delete from sc s where s.cid in (select c.cid from teacher t,course c where t.tid = c.tid and tname='李⼦')此题知识点,嵌套查询可以分布考虑,先查出李⼦⽼师都交了什么课的id,然后再删除那些id的值16.向SC表中插⼊⼀些记录,这些记录要求符合以下条件:没有上过编号“”课程的同学学号、课程的平均成绩;Insert into SC SELECT sid,2,(SELECT avg(score) FROM SC WHERE cid=2) FROM Student WHERE sid not in (SELECT sid FROM SC WHERE cid=2);17.按平均成绩从⾼到低显⽰所有学⽣的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显⽰:学⽣ID,,数据库,企业管理,英语,有效课程数,有效平均分;(没做出来)18.查询各科成绩最⾼和最低的分:以如下形式显⽰:课程ID,最⾼分,最低分;select cid as 课程号,max(score)as 最⾼分,min(score) as 最低分 from sc group by cid标准答案(但是运⾏不好使)SELECT L.cid As 课程ID,L.score AS 最⾼分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.cid = R.cid ANDL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.cid = IL.cid AND IM.sid=IL.sidGROUP BY IL.cid)AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.cid = IR.cid GROUP BY IR.cid );19.按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序26.查询每门课程被选修的学⽣数select sc.cid,count(sc.sid) from sc,course where sc.cid=course.cid group by sc.cid27.查询出只选修了⼀门课程的全部学⽣的学号和姓名SELECT SC.sid,Student.Sname,count(cid) AS 选课数 FROM SC ,StudentWHERE SC.sid=Student.sid GROUP BY SC.sid ,Student.Sname having count(cid)=1;32.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列SELECT Cid,Avg(score) FROM SC GROUP BY cid ORDER BY Avg(score),cid DESC ;37.查询不及格的课程,并按课程号从⼤到⼩排列SELECT cid,sid FROM sc WHERE score <60 ORDER BY cid38.查询课程编号为且课程成绩在分以上的学⽣的学号和姓名;select student.sid,student.sname from sc,student where sc.cid=1 and sc.score>60 and sc.sid=student.sid40.查询选修“叶平”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩select student.sname,sc.score from sc,student,teacher,course c where teacher.tname='李⼦'and teacher.tid=c.tid and c.cid=sc.cid and sc.sid=student.sid and sc.score=(select max(score)from sc where sc.cid=c.cid)41.查询各个课程及相应的选修⼈数select sc.cid ,count(sc.sid)from sc,student where sc.sid=student.sid group by sc.cid43.查询每门功成绩最好的前两名44.统计每门课程的学⽣选修⼈数(超过⼈的课程才统计)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表1.查询“001”课程比“002”课程成绩高的所有学生的学号;2.查询平均成绩大于60分的同学的学号和平均成绩;3.查询所有同学的学号、姓名、选课数、总成绩;4.查询姓“李”的老师的个数;5.查询没学过“叶平”老师课的同学的学号、姓名;6.查询所有课程成绩小于60分的同学的学号、姓名;7.查询没有学全所有课的同学的学号、姓名;8.查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;49.删除学习“叶平”老师课的SC表记录; 310.取各科平均成绩和及格率,按及格率的百分数从高到低顺序211.查询不同老师所教不同课程平均分从高到低显示512.统计列印各科,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60] 6\13.查询每门课程被选修的学生数714.查询出只选修了一门课程的全部学生的学号和姓名115.查询男生、女生人数16.查询姓“张”的学生名单17.查询同名同姓学生名单,并统计同名人数18.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列19.查询平均成绩大于85的所有学生的学号、姓名和平均成绩20.查询课程名称为“数据库”,且分数低于60的学生姓名和分数21.查询所有学生的选课情况,学号、课程号、姓名、课程名22.查询任意一门课程成绩在70分以上的姓名、课程名称和分数;23.查询有成绩不及格的课程,并按课程号从大到小排列24.查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;25.查询各个课程及相应的选修人数26.检索至少选修两门课程的学生学号27.查询没学过“叶平”老师讲授的任一门课程的学生姓名28.查询两门以上不及格课程的同学的学号及其平均成绩29.检索“004”课程分数小于60,按分数降序排列的同学学号30.删除“002”同学的“001”课程的成绩经典SQL练习题CREATE TABLE STUDENT(SNO VARCHAR(3) NOT NULL,SNAME VARCHAR(4) NOT NULL,SSEX VARCHAR(2) NOT NULL,SBIRTHDAY DATETIME,CLASS VARCHAR(5))goCREATE TABLE COURSE(CNO VARCHAR(5) NOT NULL,CNAME VARCHAR(10) NOT NULL,TNO VARCHAR(10) NOT NULL)goCREATE TABLE SCORE(SNO VARCHAR(3) NOT NULL,CNO VARCHAR(5) NOT NULL,DEGREE NUMERIC(10, 1) NOT NULL)goCREATE TABLE TEACHER(TNO VARCHAR(3) NOT NULL,TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL,TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6),DEPART VARCHAR(10) NOT NULL)INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,'曾华' ,'男' ,1977-09-01,95033);INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,'匡明' ,'男' ,1975-10-02,95031);INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,'王丽' ,'女' ,1976-01-23,95033);INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,'李军' ,'男' ,1976-02-20,95033);INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,'王芳' ,'女' ,1975-02-10,95031);INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,'陆君' ,'男' ,1974-06-03,95031);GOINSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-105' ,'计算机导论',825)INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('3-245' ,'操作系统' ,804);INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('6-166' ,'数据电路' ,856); INSERT INTO COURSE(CNO,CNAME,TNO)VALUES ('9-888' ,'高等数学' ,100); GOINSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-245',86); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-245',75); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-245',68); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,'3-105',92); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,'3-105',88); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,'3-105',76); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'3-105',64); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'3-105',91); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'3-105',78); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (101,'6-166',85); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (107,'6-106',79); INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (108,'6-166',81);GOINSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (804,'李诚','男','1958-12-02','副教授','计算机系');INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (856,'张旭','男','1969-03-12','讲师','电子工程系');INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (825,'王萍','女','1972-05-05','助教','计算机系');INSERT INTO TEACHER(TNO,TNAME,TSEX,TBIRTHDAY,PROF,DEPART) VALUES (831,'刘冰','女','1977-08-14','助教','电子工程系');题目:1、查询Student表中的所有记录的Sname、Ssex和Class列。
2、查询教师所有的单位即不重复的Depart列。
3、查询Student表的所有记录。
4、查询Score表中成绩在60到80之间的所有记录。
5、查询Score表中成绩为85,86或88的记录。
6、查询Student表中“95031”班或性别为“女”的同学记录。
7、以Class降序查询Student表的所有记录。
8、以Cno升序、Degree降序查询Score表的所有记录。
9、查询“95031”班的学生人数。
10、查询Score表中的最高分的学生学号和课程号。
11、查询…3-105‟号课程的平均分。
12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。
Select avg(degreeg) from score where cno like …3%‟13、查询最低分大于70,最高分小于90的Sno列。
14、查询所有学生的Sname、Cno和Degree列。
15、查询所有学生的Sno、Cname和Degree列。
16、查询所有学生的Sname、Cname和Degree列。
17、查询“95033”班所选课程的平均分。
18、假设使用如下命令建立了一个grade表:create table grade(low number(3,0),upp number(3),rank char(1));insert into grade values(90,100,‟A‟);insert into grade values(80,89,‟B‟);insert into grade values(70,79,‟C‟);insert into grade values(60,69,‟D‟);insert into grade values(0,59,‟E‟);commit;现查询所有同学的Sno、Cno和rank列。