SQL结构化查询语言:外连接与右外连接详解

需积分: 1 0 下载量 9 浏览量 更新于2024-08-15 收藏 1.49MB PPT 举报
"这篇教程主要介绍了数据库中的外连接,包括右外连接和全外连接,并提供了相关查询示例。同时,提到了SQLServer的安装、启动、身份验证以及数据库的创建、使用、修改和维护的基本操作。" 在数据库查询中,外连接是一种重要的联接类型,用于合并两个或更多表的数据,即使其中一个表中的行没有匹配的关联行。这篇教程重点讲述了右外连接和全外连接。 1. 右外连接(Right Outer Join): 右外连接返回所有右表(在此例子中是`sc`表)的记录,以及与左表(`student`表)匹配的记录。如果左表中没有匹配的记录,结果将显示NULL值。在查询中,我们使用`RIGHT OUTER JOIN`关键字,并将条件放在`ON`子句中,而不是`WHERE`子句,因为`WHERE`子句会过滤掉不匹配的行。例如: ```sql SELECT * FROM student RIGHT OUTER JOIN sc ON (student.sno = sc.sno) ``` 2. 全外连接(Full Outer Join): 全外连接返回左右两边表的所有记录,如果其中任何一边没有匹配的记录,结果也会显示NULL值。这可以通过以下查询实现: ```sql SELECT * FROM student FULL OUTER JOIN sc ON (student.sno = sc.sno) ``` 3. 求IS系全体学生的选课情况: 使用左外连接可以确保列出IS系所有学生的选课情况,即使他们没有选课记录,也会在结果中显示NULL。而如果不使用外连接,仅通过`WHERE`子句进行条件筛选,可能会遗漏那些没有选课记录的学生。例如: ```sql SELECT * FROM student LEFT JOIN sc ON (student.sno = sc.sno) WHERE sdept = 'IS' ``` 对比之下,如果使用`INNER JOIN`或不使用连接类型,只用`WHERE`子句筛选,只会返回IS系学生有选课记录的部分。 此外,教程还简述了SQLServer的相关内容,包括安装、启动服务、SQLServer的身份验证模式(Windows身份验证和SQLServer身份验证),以及系统数据库的作用: - `master`数据库存储系统级别的信息。 - `tmpdb`数据库用于临时表和临时存储。 - `model`数据库作为创建新用户数据库的模板。 - `msdb`数据库在SQLServer代理程序中用于调度报警和作业。 最后,教程提及了SQLServer2005环境下创建和管理数据库的基本语法,如`CREATE DATABASE`命令用于创建数据库,`ALTER DATABASE`用于修改数据库属性,以及`sp_rename`存储过程用于重命名数据库。数据库文件通常有两个扩展名:`.mdf`代表数据文件,`.ldf`代表日志文件。