试用SQL语句表示如下查询

Students表里有Sno,Sname ,Ssex ,Sage,Sdept
Courses表里有Cno,Cname,Pre_Cno,Credits
Reports表里有Sno,Cno,Grade
Students表(简记为S):学生信息,表示学号、姓名、性别、年龄和每部名称;
Courses表(简记为C):课程信息,表示课程编号、课程名称、先修课程编号和学分;
Reports表(简记为R):课程成绩信息,表示学号、课程号和成绩。

1. 教学数据库Teaching中,试用SQL语句表示如下查询:
查询选修课程数据库学生的学号 、姓名、系部和成绩。

2. 教学数据库Teaching中,试用SQL语句表示如下查询:
查询学生刘华选修的课程名称(必须使用嵌套查询)。

3. 教学数据库Teaching中,试用SQL语句表示如下查询:
统计数据库课程的选修人数、最高分和最低分。

4. 教学数据库Teaching中,试用SQL语句表示如下查询:
统计每个学生选修课程的门数(不小于3次的才统计)和平均分。
查询结果按学生选修课程的门数降序排列。

5. 教学数据库Teaching中,试用SQL语句表示如下查询:
增加信息:
S10,谢霆锋,男,23岁,计算机,C03,90分

6. 教学数据库Teaching中,试用SQL语句表示如下查询:
将数据库的成绩,每人提高10%。

7. 教学数据库Teaching中,试用SQL语句表示如下查询:
将数学系的全部学生删除。

--1
select S.Sno,Sname,Sdept,Grade from S JOIN R ON S.Sno=R.Sno
--2
select Cname from C where Cno in(select Cno from R where Sno in(select Sno from S where Sname='刘华'))
--3
select COUNT(*) 选修人数,MAX(Grade) 最高分,MIN(Grade) 最低分 from R join C on R.Cno=C.Cno where Cname='数据库'
--4
select Sname,COUNT(*) 选修课门数,AVG(Grade) 平均分 from S JOIN R ON S.Sno=R.Sno
 group by Sname having COUNT(*)>=3 order by 选修课门数 desc
--5
insert into S values('S10','谢霆锋','男',23,'计算机')
insert into R values('S10','C03',90)
--6
update R set Grade=Grade*1.1 where Cno in(select Cno from C where Cname='数据库')
--7
delete S where Sdept='数学系'

追问

非常感谢,不过不用到join的要怎么写啊

追答

除了第3题外,其它用到join的都无法替代,第三题可以这样写:

select COUNT(*) 选修人数,MAX(Grade) 最高分,MIN(Grade) 最低分 from R where Cno=(select Cno from C where Cname='数据库')

温馨提示:答案为网友推荐,仅供参考
相似回答