第三章 关系数据库标准语言SQL

第一节 第二节 第三节 第四节

第三节 查 询   (1)(2)(3)(4)(5)(6)(7)(8)(9)(10)(11)(12)(13)
    在表名后面加外连接操作符(*)或(+)指定非主体表。非主体表有一“万能”的虚行,该行全部由空值组
成,虚行可以和主体表中所有不满足连接条件的元组进行连接。由于虚行各列全部是空值,因此与虚行连接
的结果中,来自非主体表的属性值全部是空值。
    左外连接,外连接符出现在连接条件的左边;右外连接,外连接符出现在连接条件的右边。
五、复合条件连接,WHERE子句中含多个连接条件时,称为复合条件连接。
    [例]查询选修2号课程且成绩在90分以上的所有学生的学号、姓名。
            SELECT Student.Sno, student.Sname
            FROM Student, SC
            WHERE Student.Sno = SC.Sno AND
            /* 连接谓词*/
            SC.Cno= ' 2 ' AND /* 其他限定条件 */
            SC.Grade > 90; /* 其他限定条件 */
3.3.4 嵌套查询,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE
子句或HAVING短语的条件中的查询称为嵌套查询。
        SELECT Sname 外层查询/父查询
        FROM Student
        WHERE Sno IN
        (SELECT Sno 内层查询/子查询
        FROM SC
        WHERE Cno= ' 2 ');
    子查询的限制:不能使用ORDER BY子句;层层嵌套方式反映了 SQL语言的结构化;有些嵌套查询可以用
连接运算替代。
    嵌套查询分类:不相关子查询;子查询的查询条件不依赖于父查询;相关子查询;子查询的查询条件依
赖于父查询。
    嵌套查询求解方法:不相关子查询;是由里向外逐层处理。即每个子查询在;上一级查询处理之前求解,
子查询的结果;用于建立其父查询的查找条件。

吉林大学网络教育学院 版权所有