1,select 任课教师 ,开课系
from 课程表
where 任课教师 =‘李老师’
2,select 学生表.学号 ,学生表.姓名
from 学生表,学习表, 课程表
where 学生表.学号= 学习表.学号
and 学生表.年龄 >=19
and 学生表.性别 = ‘女’
and 学生表.所在系= ‘计算机’
3,select 学生表.姓名
from 学生表,学习表, 课程表
where 学生表.学号= 学习表.学号
and 课程表.课程号 = 学习表.课程号
and 学生表.性别 = ‘女’
and 课程表.课程号 not in (select 课程号
from 课程表
where 任课教师 =‘刘老师’)
4,select 课程表.课程号,课程表.开课系
from 学生表,学习表, 课程表
where 学生表.学号= 学习表.学号
and 课程表.课程号 = 学习表.课程号
and 学生表.姓名 = ‘王乐’
5,select 学生表.学号,学生表.姓名
from 学生表
where 学生表.学号 in (select 学生表.学号,count(学号) as 修读门数
from 学习表
group by 学习表.学号
having 修读门数>=3)
6,select count(*) from((select 学生表.姓名
from 学生表
where not exists
(select 课程好
from 课程表
where not exists
(select *
from 学习表,学生表,课程表
where 学习表.学号= 学生表.学号
and 学习表.课程号= 课程.课程号))
7,select count(学生表.学号)
from 学生表
where 学生表.所在系= ‘计算机’
8,select 课程表.课程号,课程表.课程名,avg(学习表.成绩)
from 学生表,学习表, 课程表
where 学生表.学号= 学习表.学号
and 课程表.课程号 = 学习表.课程号
and 课程表.课程系 = ‘计算机’
group by 课程表.课程号,课程表.课程名
9,select 学生表.学号,学生表.所在系
from 学生表,
where 学生表.姓名 like ‘张%’
and 学生表.姓别 = ‘男’
10 update 学习表
set 学习表.成绩=null
where 课程表.课程号 = 学习表.课程号
and 课程表.课程名 = ‘数据库原理课’
and 学习表.成绩 <='69'
以上答案请你参考,由于时间原因,有不准确的请你谅解
本来没打算回的,看到这么高分。。。我无耻的出卖了自己,罪过罪过,又害了一个
学生(学号,姓名,年龄,性别,所在系)
学习(学号,课程号,成绩)
课程(课程号,课程名,开课系,任课教师)
(1)查询李老师所授课程的课程号和开课系。
select 课程号,开课系 from 课程表
where 任课教师='李老师'
(2)查询计算机系年龄大于20岁的女同学学号和姓名。
select 学号,姓名 from 学生表
where 所在系='计算机' and 年龄>20 and 性别='女'
(3)查询没有修读刘老师所授课程的女学生姓名。
select 姓名 from 学生表 join 学习表 on 学生表.学号=学习表.学号
where not exists (
select 1 from 课程表
where 课程表.课程号=学习.课程号 and 任课教师='刘老师') and 姓别='女'
(4)查询王乐同学学习课程的课程号和开课系。
select '王乐',课程表.课程号,课程表.开课系 from 学生 join 学习表 on 学生表.学号=学习表.学号
join 课程表 on 课程表.课程号=学习表.课程号
where 学生表.姓名='王乐'
(5)查询至少修读了3门课的学生的学号和姓名。
select 学号,姓名,count(1) from (
select distinct 学号, 姓名,课程名 from 学生表 join 学习表 on 学生表.学号=学习表.学号
join 课程表 on 课程表.课程号=学习表.课程号 ) t
group by 学号,姓名
having count(1)>=3
(6)查询修读了全部课程的学生人数。
select count(*) from (
select 学号, count(1) from 学习表 a join
(select distinct 课程号 from 学习表) b on a.课程号=b.课程号
group by 学号 ) t
(7)统计计算机系共有多少学生。
select count(1) from 学生表
where 所在系='计算机'
(8)统计计算机系开的每门课程的学生平均成绩。
select 课程名,avg(成绩) from 学生表
join 学习表 on 学生表.学号=学习表.学号
join 课程表 on 课程表.课程号=学习表.课程号
where 开课系='计算机'
group by 课程名
(9)查询姓名以张开头的所有男同学的学号和所在系。
select 学号,所在系 from 学生表
where left(姓名,1)='张' and 性别='男'
(10)把修读数据库原理课成绩低于70分的成绩全改为空值。
update a set a.成绩='' from 学习表 a join 课程表 b on a.课程号=b.课程号
where b.课程名='数据库原理' and a.成绩<70
select 课程号,开课系 from 课程 where 任课老师='李老师';
select 学号,姓名 from 学生 where 年龄>20;
select 姓名
from 学生
where 性别='女'
and not exists ( select '任课老师'
from 课程,学习
where 学生.学号=学习.学号
and 课程.课程号=学习.课程号
and 任课老师='刘老师');
为了100分也不写了,问题太多 楼主太懒
select 课程号,开课系 from 课程 where 任课教师='李老师';
select 学号,姓名 from 学生 where 所在系= '计算机系' and 性别='女' and 年龄>20;
select 姓名 from 学生 where 性别='女' and not exists (
select 课程号 from 课程 where 任课教师='刘老师');
select Course.课程号,Course.开课系 from 课程 Course,学习 SC,学生 student where student.学号=SC.学号 and Course.课程号=SC.课程号 and student.姓名='王乐';
select 学号,姓名 from (select s.学号,s.姓名,count(r.课程号) num from 学生 s,学习 r where s.学号=r.学号 group by s.学号,s.姓名) where num>=3;
你想知道哪一个问题的答案?