来自「数据库系统概论中所有的数据库例子以及课后习题和最后的上机实习的数据库。薛数据库的」· 代码 · 共 18 行

TXT
18
字号
/*[例44]  查询至少选修了学生95002选修的全部课程的学生号码。
解题思路:
用逻辑蕴函表达:查询学号为x的学生,对所有的课程y,只要95002学生选修了课程y,则x也选修了y。
变换后语义:不存在这样的课程y,学生95002选修了y,而学生x没有选。
用NOT EXISTS谓词表示:     
    
*/
 SELECT DISTINCT Sno
         FROM SC SCX
         WHERE NOT EXISTS
               (SELECT *
                FROM SC SCY
                WHERE SCY.Sno = '95002'  AND
                     NOT EXISTS
                          (SELECT *
                           FROM SC SCZ
                           WHERE SCZ.Sno=SCX.Sno AND
                                           SCZ.Cno=SCY.Cno))

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?