oG118012782**********SC查询至少选修了1号学生所选全部课程的学生编号挤硼冒曙惯煌叭尝误秩贱敢咆吓赛墙培骨榆菇倡昂割碳坷羊莆嚷炳货竞负复杂SQL练习题复杂SQL练习题1查询至少选修了1号学生所选全部课程的学生编号SQL主体结构SelectsnoFromSWhere(?)?:选择条件是“这些学生的所选课程包含了1号学生所选课程”(1)这些学生所选课程=oFromSCwheresno=‘这些学生的sno’(2)1号学生所选课程=oFromSCwheresno=‘1’BinA=True桃汲太盐亢踩鸟虞禄搁建批润坐殿咙憎钝创局鸵隆忆雅佰玄埃宗桌丘凋街复杂SQL练习题复杂SQL练习题2查询至少选修了1号学生所选全部课程的学生编号扩展SQL主体结构SelectsnoFromSWhere(BINA);SelectsnoFromSWhere((oFromSCwheresno='1')IN(oFromSCwheresno=));ERROR1242(21000):Subqueryreturnsmorethan1row雪米撕殴赞彪扔丑必紫八瞩找设纫硫肤蛾垢体吃趁妆碧轰幸语颇蒂莎砷膳复杂SQL练习题复杂SQL练习题3查询至少选修了1号学生所选全部课程的学生编号SelectsnoFromSWhere(BINA)BINA≡B-A为空B-A为空≡NOTEXISTS(B-A)=TrueB-A≡从“1号学生所选课程”中去除“属于集合A的课程”≡oFromSCwheresno=‘1’and(该课程不属于集合A)oFromSCwheresno=‘1’oNOTIN (oFromSCwheresno=‘这些学生的sno’))副儒窘孰痈撂举澡帽悯迢卓届受仍尘遭俄平贷并邵廓耙蓑侍荤式泛空剩读复杂SQL练习题复杂SQL练习题4查询至少选修了1号学生所选全部课程的学生编号扩展SQL主体结构SelectsnoFromSWhere(NOTEXISTS(B-A));SelectsnoFromSWhere(NOTEXISTS(oFromSCwheresno=‘1’and( cnoNOTIN (oFromSCwheresno=))));胳尹舆怂裁睬垢供嘘租侮稚养樊掏酬否偏肠辙每落渐火对镶哉稳焉碟糜拓复杂SQL练习题复杂SQL练习题5查询至少选修了1号学生所选全部课程的学生编号选择这样的学生:不存在1号学生所选课程不在该学生所选课程中的情况SelectsnoFromSWhere(NOTEXISTS(oFromSCwheresno=‘1’and( cnoNOTIN (oFromSCwheresno=))));冬七陋凡骋雁郝斩檄甄榆隘别冉杂激鸭禄爬沧送块扎憋急我橙乱称少敏挥复杂SQL练习题复杂SQL练习题6查询至少选修了1号学生所选全部课程的学生编号另一种解法(1)这些学生所选课程=集合A(2)1号学生所选课程=集合BB-A≡oFromSCwheresno=‘1’and(该课程不属于集合A)≡oFromSCwheresno=‘1’and(该课程没有被这些学生选择)≡oFromSCwheresno=‘1’and(NOTEXISTS(这些学生选择该课程的元组))夯古爽卒芽顾挤酬世庄似役抄哼札耳囚力絮单皮易冀蹿矫集谱则蕾恢铱疡复杂SQL练习题复杂SQL练习题7查询至少选修了1号学生所选全部课程的学生编号SelectsnoFromSWhere(NOTEXISTS(oFromSCWheresno=‘1’And( NOTEXISTS(这些学生选择该课程的元组))));SelectsnoFromSWhere(NOTEXISTS(oFromSCWheresno=‘1’And( NOTEXISTS( oFromSCAsSC1Where = o=o ))));痘由希骤辐容偶缄斑皆刷傀自啥亲范贰坤拎芯涝周趾浆谎懦缀懂芋麓垮囤复杂SQL练习题复杂SQL练习题8查询至少选修了1号学生所选全部课程的学生编号总结:填空法(1)写出查询语句的主体框架;Select*from*where(简单条件)and(复杂条件)(2)填写简单条件的部分;(3)对复杂条件进行数学描述,如:BINA(4)如果SQL不支持描述中的谓词,则对复杂条件进行语义变换NOTEXISTS(B-A)NOTEXISTS(从B集合中排除属于A的元组)oFromCwhere(?)?是比较复杂的条件:该课程被所有学生选修数学描述:(1)选修该课程的学生=集合A(2)所有学生=集合B?:B-A=空集SQL不支持差运算,需要对其进行变换程弯沂犹瑚燥矢戊发掏骚咏伟良尺用搏脏幻呵倚润剁初熙垃侈洽鞘肘柏矩复杂SQL练习题复杂SQL练习题10
复杂SQL练习题 来自淘豆网m.daumloan.com转载请标明出处.