Mysql数据库中的EXISTS和NOT EXISTS
准备数据
我们先介绍下使用的3个数据表:
student数据表:
course数据表:
sc数据表:
EXISTS代表存在量词?。带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或者逻辑假值“false”。
一个例子1.1:
要求:查询选修了课程”操作系统“的同学
SQL语句:
NOT EXISTS与EXISTS谓词相对的是NOT EXISTS谓词。使用存在量词NOT EXISTS后,若对应查询结果为空,则外层的WHERE子语句返回值为真值,否则返回假值。
例子2.1:
要求:查询没有选修课程”操作系统“的同学SQL语句:
例子2.2(这是一个用NOT EXISTS表示全称量词的例子):
要求:查询选修了全部课程的学生姓名。
SQL语句: