SQL之NOT EXISTS问题

SQL 没有全称量词∀,但可以用命题逻辑的等价公式把带有全称量词的谓词转换为等价的带存在量词的谓词:(∀x) P=¬(∃x)(¬ P)

例:查询选修了所有课程的学生姓名(Sname)和所在系别编号(Dno)
由于没有全称量词,可将题目的意思转换成等价的用存在量词的形式:查询这样的学生,没有一门课程是他不选修的。其SQL语句为

select Sname,Dno
from Students
where not exists
      (select *
        from Courses
        where not exists
                  (select *
                    from Reports
                    where Sno=Students.Sno
                     and Cno=Courses.Cno))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 模式 定义模式实际上定义了一个命名空间,在这个空间中 可以进一步 定义该模式包含的数据对象,例如基本表,视图,索引...
    iOS_愛OS阅读 919评论 0 1
  • 说明:以下五十个语句都按照测试数据进行过测试,最好每次只单独运行一个语句。 问题及描述: --1.学生表 Stud...
    lijun_m阅读 1,327评论 0 1
  • 在关系代数表达式中,一般都显式指定一个计值顺序,它隐含着执行查询的策略。在关系演算中,不描述查询执行策略,即关系演...
    板蓝根plank阅读 2,537评论 2 2
  • 他,一只骄傲的蝎子。 她,一条美丽的鱼儿。 他有一身黑色的铠甲,阴狠的毒针。 她有一身金黄的鳞片,美丽的眸子。 当...
    命运的吻合阅读 686评论 0 0
  • 今天在小区,坚持锻炼走路,就是想让自己气息够用!身体更健康些!曾经为了锻炼,天天爬楼梯,从10楼到1楼,再从1楼到...
    静如初夏阅读 204评论 2 2