数据库原理练习

该文提供了5个关于学生选课数据库的查询题目,涉及关系代数和SQL语句的使用,包括选修特定课程的学生信息,特定专业学生的学习情况,高分学生,未学特定课程的学生以及学过多个课程的学生等查询。
摘要由CSDN通过智能技术生成

场景:

提示:这里简述项目相关背景:
4.10专升本数据库原理练习


题目

现有关系数据库如下:
学生(学号,姓名,性别,专业)
课程(课程号,课程名,学分)
学习(学号,课程号,分数)
分别用关系代数表达式和 SQL 语句实现下列 1—5 小题(注意:每小题都要分别写出关系代
数表达式和 SQL 语句!!!每小题关系代数表达式 2 分,SQL 语句 2 分):
1. 检索所有选修了课程号为“C112”的课程的学生的学号和分数;
2. 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
3. 检索“数据库原理”课程成绩高于 90 分的所有学生的学号、姓名、专业和分数;
4. 检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
5. 检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。

答案

-- 1. 检索所有选修了课程号为“C112”的课程的学生的学号和分数;
π 学号, 分数 (σ课程号='C112' (学习)) --关系代数表达式
SELECT 学号, 分数 FROM 学习 WHERE 课程号 = 'C112'; -- 用 SQL 语言实现
-- 2. 检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数;
π 学号, 姓名,课程名, 分数 (学生 ⋈ (σ专业='英语' (学习 ⋈课程)))--关系代数表达式
select 学号,姓名,课程名,分数 from 学生 join 课程 join 学习 where 专业="英语"; -- 用 SQL 语言实现
-- 3.检索“数据库原理”课程成绩高于 90 分的所有学生的学号、姓名、专业和分数;
π 学号, 姓名,专业, 分数 (学生 ⋈ (π 学号, 分数 (σ课程名='数据库原理'课程 ⋈ 学习)) ⋈ σ 分数 >90 (π 学号, 分数 (σ课程名='数据库原理'课程 ⋈ 学习)))--关系代数表达式
select 学号,姓名,专业,分数 from 学生 join 学习 on 学生.学号 = 学习.学号 join 课程 on 学习.课程号 = 课程.课程号 where 课程.课程名 = '数据库原理' and 分数 > 90; -- 用 SQL 语言实现
-- 4. 检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
π 学号, 姓名,专业 (学生 - π 学号, 姓名,专业 ((σ课程号='C135' 学习) ⋈ 学生))--关系代数表达式
select 学号,姓名,专业 from 学生 join 课程 on 学生.学号 = 学习.学号 where 学生.学号 not in (select 学号 from 学习 where 课程号 = 'C135'); -- 用 SQL 语言实现
-- 5. 检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。
π 学号, 姓名,专业 (σ 学号 IN (σ课程号='C135' 学习)(σ课程号='C219' 学习) (π 学号 (学习) ⋈ 学生))--关系代数表达式
select 学号,姓名,专业 from 学生 join 学习 on 学生.学号 = 学习.学号 where 课程号 in ('C135', 'C219') group by 学号, 姓名, 专业 having count(distinct 课程号) = 2; -- 用 SQL 语言实现
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

TechLens

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

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

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

打赏作者

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

抵扣说明:

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

余额充值