问一道SQL语句的题目,请各位帮帮忙。

2024-12-18 16:31:13
推荐回答(5个)
回答1:

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'

以上答案请你参考,由于时间原因,有不准确的请你谅解

回答2:

本来没打算回的,看到这么高分。。。我无耻的出卖了自己,罪过罪过,又害了一个
学生(学号,姓名,年龄,性别,所在系)
学习(学号,课程号,成绩)
课程(课程号,课程名,开课系,任课教师)

(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

回答3:

  1. select 课程号,开课系 from 课程 where 任课老师='李老师';

  2. select 学号,姓名 from 学生 where 年龄>20;

  3. select 姓名

          from 学生

        where 性别='女'

            and not exists ( select '任课老师'

                                       from  课程,学习

                                      where 学生.学号=学习.学号

                                         and 课程.课程号=学习.课程号

                                         and 任课老师='刘老师');

为了100分也不写了,问题太多 楼主太懒

回答4:

  1. select 课程号,开课系 from 课程 where 任课教师='李老师';

  2. select 学号,姓名 from 学生 where 所在系= '计算机系' and 性别='女' and 年龄>20;

  3. select 姓名 from 学生 where 性别='女' and not exists (
    select 课程号 from  课程 where 任课教师='刘老师');

  4. select Course.课程号,Course.开课系 from 课程 Course,学习 SC,学生 student where student.学号=SC.学号 and Course.课程号=SC.课程号 and student.姓名='王乐';

  5. select 学号,姓名 from (select s.学号,s.姓名,count(r.课程号) num from 学生 s,学习 r where s.学号=r.学号 group by s.学号,s.姓名) where num>=3;

回答5:

你想知道哪一个问题的答案?