zoukankan      html  css  js  c++  java
  • 数据库检索

    问题一

    MYSQL检索选修所有课程的学生的学号

    解决方案

    SELECT SN FROM S WHERE NOT EXISTS
    (SELECT * FROM C WHERE NOT EXISTS
    (SELECT * FROM SC WHERE SC.CNO=C.CNO AND SC.SNO=S.SNO));
    

    解释

    1. EXISTS 子查询找到的提交
      NOT EXISTS 子查询中 找不到的提交
    2. 建立程序循环的概念,这是一个动态的查询过程,如 FOR循环
    %伪代码
    for S =1:m
        for C = 1:n
            if S has C, None
            else, 记录 S
    %S现在为没有选择全部课程的学生
    return S 的补集
    

    问题二

    检索修读了学号为S4的学生所修读的所有课程的学生的姓名

    解决方案

    SELECT SN FROM S WHERE NOT EXISTS
    (SELECT * FROM SC AS SCX WHERE SNO='S4' AND NOT EXISTS
    (SELECT * FROM SC AS SCY WHERE SCY.SNO=S.SNO AND SCY.CNO=SCX.CNO));
    
  • 相关阅读:
    (数论选拔)联盟阵容
    ai变成bi(递增)最小次数
    状压dp
    dp被3整除的子序列
    离散化+莫队
    dp+哈希
    set的应用
    NOIP 2016 明明的随机数
    洛谷背景更改
    zzulioj 1734 堆
  • 原文地址:https://www.cnblogs.com/kexve/p/11760096.html
Copyright © 2011-2022 走看看