第2关:多表查询


任务描述

本关任务:

  • 使用join操作符实现多表查询。
join操作符

1.笛卡尔积,RXS

可直接转换为SQL语句

2.等值连接,记作

可直接转换为SQL语句

3.自然连接,记作

可转换为SQL语句

4.左外连接和右外连接的表示方法及转换为SQL

注意若多个关系有同名属性,则用 关系名.属性名 指出重名属性

连接也可以与投影,选择等结合使用。

编程要求
  • 1.补全右侧代码片段中 第一题 下 Begin-End 区间的代码,查询选修了'2'号课程的学生的学号;
  • 2.补全右侧代码片段中 第二题 下 Begin-End 区间的代码,查询Liyong选修的课程成绩。
  • 3.补全右侧代码片段中 第三题 下 Begin-End 区间的代码,查询选修课程名称Math的学生学号。

使用的表结构: Student(Sno, Sname, Ssex, Sage, Sdept) Course(Cno, Cname,Ccredit) SC(Sno, Cno, Grade)

测试说明

测试过程:

  • 本关涉及到的测试文件是 step2_test.sh ,平台将运行用户补全的 step2.sql 文件,得到数据;

  • 将得到的数据与答案比较,判断代码是否正确。

sql 复制代码
USE test_wyy_db_guet
Go

SET NOCOUNT ON


-- ********** Begin ********** --
---------- 第一题----------
select sno from sc where cno='2';
-- ********** End ********** --
GO


-- ********** Begin ********** --
---------- 第二题----------
select grade from sc join student on student.sno=sc.sno where sname='LiYong';
-- ********** End ********** --
GO

-- ********** Begin ********** --
---------- 第三题----------
select distinct sc.sno from sc join course on  course.cno=sc.cno and cname='Math';
-- ********** End ********** --
GO
相关推荐
WAWA战士9 分钟前
mysql总结
数据库
熊思宇14 分钟前
Sqlite“无法加载 DLL“e_sqlite3”: 找不到指定的模块”解决方法
数据库·sqlite
往事随风去16 分钟前
面试官:mysql从数据库断开一段时间后,部分binlog已丢失,如何重建主从?
运维·数据库·mysql
J.Kuchiki21 分钟前
【PostgreSQL内核学习 —— (SeqScan算子)】
数据库·postgresql
酷酷的崽79843 分钟前
Redis 键(Key)的命令
数据库·redis·缓存
189228048611 小时前
NW622NW623美光固态闪存NW624NW635
大数据·网络·数据库·人工智能·microsoft·性能优化
云飞云共享云桌面1 小时前
1台电脑10个画图设计用怎么实现
linux·运维·服务器·网络·数据库·自动化·电脑
TTBIGDATA2 小时前
【Ambari监控】Ambari-Metrics 的分支研究
大数据·数据库·hadoop·ambari·bigtop·edp·hidataplus
Z_z在努力2 小时前
【杂类】应对 MySQL 处理短时间高并发的请求:缓存预热
数据库·mysql·缓存
格林威2 小时前
Linux使用-MySQL的使用
linux·运维·人工智能·数码相机·mysql·计算机视觉·视觉检测