本文是《数据库系统概论》的第三章的部分课后习题,题目来源:【2019-2020春学期】数据库作业10:第三章课后题
第 3 题
有两个关系S(A,B,C,D)和T(C,D,E,F),写出与下列等查询等价的SQL表达式:
1) σ A = 10 ( S ) \sigma _{A=10}\left( S\right) σA=10(S)
SELECT *
FROM S
WHERE A = 10;
选择S表中A=10的元组,即查询表中A=10这一行的记录
2) Π A , B ( S ) \Pi _{A,B}\left( S\right) ΠA,B(S)
SELECT DISTINCT A, B
FROM S;
投影S表中A,B两个属性列,即查询表中A,B两列(注意:对于关系代数来说,投影需要消除重复行,所以加了DISTINCT
)
3)S ⋈ \Join ⋈ T
SELECT A, B, S.C, S.D, E, F
FROM S, T
WHERE S.C = T.C AND S.D = T.D;
自然连接S和T关系,连接后去掉重复列
4)S ⋈ S . C = T . C \underset{S.C = T.C}\Join S.C=T.C⋈T
SELECT *
FROM S, T
WHERE S.C = T.C;
等值连接
5)S ⋈ A < E \underset{A < E}\Join A<E⋈T
SELECT *
FROM S, T
WHERE A < E;
非等值连接
6) Π C , D ( S ) × T \Pi _{C,D}\left( S\right)\times T ΠC,D(S)×T
SELECT S1.C, S1.D, T.C, T.D, E, F
FROM T, ( SELECT DISTINCT C, D FROM S) AS S1;
S表C,D两列的投影与T表的笛卡尔积,同样的(因为是关系代数)S表的C, D两列的投影需要去掉重复项
第 4 题
(因为这里涉及到了建表、插入数据啥的,我这部分会写的详细一点)
— — — — — — — — — — — — — — — — — — — — — — — — — — — —
👀有一个SPJ数据库,包括 S、P、J 及 SPJ 4个关系模式:
S(SNO,SNAME,STATUS,CITY)
P(PNO,PNAME,COLOR,WEIGHT)
J(JNO,JNAME,CITY)
SPJ(SNO,PNO,JNO,QTY)
— — — — — — — — — — — — — — — — — — — — — — — — — — — —
① 供成商表S由供应商代码(SNO)、供应商姓名(SNAME) 、供应商状态(STABUS)、供应商所在城市(CITY) 组成。
② 零件表P由零件代码(PNO)、零件名