将包含关键字 EXIST 的 SQL 查询转换为关系代数

问题描述 投票:0回答:1
select fname, lname, salary
from employee
where exists (
    select essn from dependent where employee.sex = dependent.sex
    ); 

如何将包含关键字 EXIST 的 SQL 查询转换为关系代数?

sql database relational-algebra
1个回答
0
投票

更好的 SQL,避免

exists
:

select distinct fname,lname,salary from employee
                                 join dependent on employee.sex = dependent.sex;

更好的 SQL,但只有在

sex
是表之间唯一共同的列时才有效
employee, dependent

select distinct fname,lname,salary from employee
                                 natural join dependent;

关系代数附录A风格(具有相同的附带条件)

(employee JOIN dependent) {fname,lname,salary}

关系代数Codd 1972 风格(具有相同的条件)

π<fname,lname,salary>(employee ⋈ dependent)
  • (将属性名称放在
    < >
    中,因为下标在 SO 代码中不起作用。)
© www.soinside.com 2019 - 2024. All rights reserved.