编写SQL语句,查询出至少有40个学生选修的课程信息(求高手 表明和课程名直接用拼音命名即可)

现有学生信息表、学生选课表、课程信息表、教师信息表,表结构如下
学生信息表
字段名 数据类型 说明
学号 Varchar(20) 主键
姓名 Varchar(20)
性别 Varchar(20) (默认为“男”)
班级 Varchar(20)
出生日期 日期/时间

课程信息表
字段名 数据类型 说明
课程号 Varchar(20) 主键
课程名称 Varchar(20)
教师号 Varchar(20)
总学时 Int

学生选课表
字段名 数据类型 说明
ID Int 自动编号主键
学号 Varchar(20)
课程号 Varchar(20)
成绩 Float

教师信息表
字段名 数据类型 说明
教师号 Varchar(20) 主键
教师姓名 Varchar(20)
所在系部 Varchar(20)

(1) 请编写SQL语句,查询出计算机系教师所开的课程信息。
(2) 编写SQL语句,查询出至少有40个学生选修的课程信息
(3) 编写一个存储过程,求出平均成绩在60分以上的课程名称和教师名称。

第1个回答  2010-06-17
1.select *
from 课程表
where 教师号 in
(select 教师号
from 教师表
where 所在系=‘计算机’);

2.
select *
from 课程表
where 课程号 in
(select 课程号
from 选课表
group by 课程号
having count(*) > = 40)

3. 这里不知道你要用什么写,是SQL SERVER 还是My sql 还是Oracle
这样 我给你吧SQL写出来,具体是什么你套格式吧
Select 课程名,教师名
from 课程表
where 课程号 in
(Select 课程号
from 选课表
group by 课程号 having avg(成绩) >60);本回答被提问者和网友采纳
第2个回答  2010-06-27
select *
from 课程表
where teacherId = (select teacherId from 教师表 where 系部='计算机系')

select *
from 课程表
where 课程Id in
(select 课程Id
from 选课表
group by 课程Id
having count(学号)>=40)
第3个回答  2010-06-22
select *
from 课程信息表
where teacherId = (select teacherId from 教师信息表 where 所在系部='计算机系')

select *
from 课程信息表
where 课程Id in
(select 课程Id
from 选课表
group by 课程Id
having count(学号)>=40)

create proc usp_myProc
as
select 课程名,教师名
from 课程表
inner join 教师表 on (教师Id=教师Id)
where (select avg(成绩) from 选课表)>=60

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网