数据库的简单查询和连接查询—学生选课表

学生选课数据库中的表的结构参考学生选课数据库的定义和维护

1.简单查询

1.1查询数据学院学生的学号和姓名

SELECT sno,sname
FROM student
WHERE sdept='数学与计算机科学学院'

1.2查询选修了课程的学生学号

SELECT DISTINCT sno
FROM SC

1.3查询选修课程编号'01'为课程的学生学号和成绩, 结果按成绩降序排列, 如果成绩相同按学号升序排列

SELECT sno,grade
FROM SC
WHERE cno='01'
ORDER BY grade DESC,sno ASC

1.4查询选修课程编号为'01', 成绩在'80-90'之间的的学生的学号和成绩, 并将成绩乘以0.8输出

SELECT sno, grade*0.8 grade
FROM SC
WHERE cno='01' AND grade BETWEEN 80 AND 90  

1.5查询'数计学院'或'管理学院'姓张的学生的信息

SELECT *
FROM student
WHERE sname LIKE '张%'
      AND sdept IN('数学与计算机科学学院','管理学院')

1.6查询缺少了成绩的学生的学号和课程号

SELECT sno, cno
FROM SC
WHERE grade IS NULL

2.连接查询

2.1查询学生的学号, 姓名, 选修的课程名称及成绩

SELECT s.sno 学号, sname 名字, c.cname 课程, grade 成绩
FROM student s
INNER JOIN SC sc ON s.sno = sc.sno
INNER JOIN Course c ON sc.cno = c.cno

2.2查询数计学院学生选修的课程学分大于2的课程详细信息

SELECT DISTINCT c.cno, c.cname, c.ccredit, c.cpno
FROM Course c
INNER JOIN SC sc ON sc.cno = c.cno
INNER JOIN student s ON s.sdept = '数学与计算机科学学院' AND s.sno = sc.sno
WHERE ccredit > 2

2.3查询所有学生的信息及学生所选课的课程编号和成绩(要求查询结果也显示出没有选修课程的学生成绩)

SELECT s.sno, sname, ssex, sage, sdept, stel, sc.cno, sc.grade
FROM student s
LEFT JOIN SC sc ON s.sno = sc.sno

2.4查询选修课程编号为'06'且成绩在90分以上的学生学号, 姓名, 成绩

SELECT s.sno, sname, sc.grade
FROM student s
INNER JOIN SC sc ON sc.cno = '06' AND s.sno = sc.sno AND sc.grade >= 90

2.5查询每一门课的间接先行课(即先行课的先行课)

SELECT c2.cno, c1.cpno
FROM Course c1
JOIN Course c2 ON c2.cpno = c1.cno
WHERE c1.cpno IS NOT NULL

2.6查询至少选修了两门课程的学生学号

SELECT sno
FROM SC sc
GROUP BY sc.sno HAVING COUNT(sc.cno) >= 2

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Black—slience

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值