任务描述
本关任务:使用 集合操作解决实际问题
相关知识
1.集合并操作符
可转换为SQL
若R,S的属性名不同,可使用重命名使相应列名一致后进行并操作 例如:R(A,B,C) S(D,E,F) select A,B from R union select D as A, E as B from S 2.集合交操作
可直接转换为SQL select * from R intersect select * from S 若属性名不同可参照并操作的重命名实现交操作。 3.集合差操作 R-S 可转换为 Select * from R except Select * from S
编程要求
我们已经为你建好了数据库与数据表R,S,并添加了相应的数据内容。
-
1.补全右侧代码片段中 第一题 下 Begin-End 区间的代码,找出所有的导师的姓名和性别
-
2.补全右侧代码片段中 第二题 下 Begin-End 区间的代码,找出既是本科生导师又是硕士生导师的全部信息,包括id,name,sex
-
3.补全右侧代码片段中 第三题 下 Begin-End 区间的代码,找出是本科生导师但不是硕士生导师的全部信息,包括id,name,sex
测试说明
测试过程:
-
本关涉及到的测试文件是 step3_test.sh ,平台将运行用户补全的 step3.sql 文件,得到数据;
-
将得到的数据与答案比较,判断代码是否正确。
实验代码
USE test_wyy_db_guet
Go
SET NOCOUNT ON
---------- 第一题 ----------
-- ********** Begin ********** --
select name,sex
from R
Union
select name,sex
from S;
-- ********** End ********** --
GO
---------- 第二题 ----------
-- ********** Begin ********** --
select *
from R
intersect
select *
from S;
-- ********** End ********** --
GO
---------- 第三题 ----------
-- ********** Begin ********** --
select*
from R
except
select *
from S;
-- ********** End ********** --
GO