当前位置:首页 » 编程语言 » sql选修教程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql选修教程

发布时间: 2022-06-11 18:20:50

㈠ 用SQL语句查询选修课程名称中有数据库课程的学生的学号

select * from 学生表 where 学号 in(select 学号 from 选修课表 where 课程='数据库')

思路大概就是这样

㈡ 用SQL语句实现查询选修了一门以上课程学生的所有信息。 怎么做啊

select * from 学生表 where 学号 in (select distinct 学号 from 选课表)

㈢ SQL求选修了1号课或2号课的学生学号和课号及成绩用集合查询的方法

SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='2'
集合运算,列的数目、类型要一致
如果还报错,那就考虑别的语法吧,not in或者not exists
列值不一样的记录,在集合想减时减不掉,所以要把cno和grade列去掉

㈣ 用SQL语句列出全部学员都选修的课程的课程名和课程号

我的思路是在SC中判断每门课被选修了多少次,如果被选修次数=学生人数 则认为被所有学生选修。总觉得这个思路不太好,可是又想不出更好的逻辑关系

select CNAME,CNO from c
where cno in (
select cno from sc
group by sno
having count(sno) = (select count(1) from s)
)

㈤ 用SQL语句查询每个学生选修的课程名及其成绩

select 姓名,课程名,成绩 from (课程名所在的表名 C join 成绩所在的表名 S on C.课程号=S.课程号) join 学生信息表 on S.学号=学生信息表.学号 ;

具体的例子:
select Sname,Cname,Grade from Student st left join(Score s left join Course c on s.Cno=c.Cno)
on st.Sno=s.Sno;

㈥ 怎么用SQL语句查询每个学生选修的课程名及其成绩

查询选修了全部课程的学生姓名
:student 是学生表 course 是选课表 sc 是课程表
select sname
from student
where not exists
(select *
from course
where not exists
(select *
from sc
where sno =student.sno
and cno=course.cno)

㈦ SQL如何实现计算各个学生选修的课程门数

select 学号,count(课程号) from table group by 学号

㈧ SQL查询全部学生都选修的课程的课程号和课程名问题

SELECT
course.cid,
course.cname
FROM
course JOIN study ON (course.cid = study.cid)
GROUP BY
course.cid,
course.cname
HAVING
COUNT(study.sid) = (SELECT COUNT(sid) FROM student);

逻辑:

首先,简单的把 课程表 与 选修表 关联
course JOIN study ON (course.cid = study.cid)

然后 ,按照 课程号和课程名 分组
GROUP BY
course.cid,
course.cname

最后, 要求 选修的人数 = 学生总数
HAVING
COUNT(study.sid) = (SELECT COUNT(sid) FROM student)