SQL结构化查询语言:外连接与右外连接详解
需积分: 1 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`代表日志文件。
2021-12-16 上传
2023-02-27 上传
2022-12-13 上传
2023-05-10 上传
2023-07-28 上传
2023-08-16 上传
2023-05-27 上传
2024-05-25 上传
2023-08-20 上传
ServeRobotics
- 粉丝: 36
- 资源: 2万+
最新资源
- Fisher Iris Setosa数据的主成分分析及可视化- Matlab实现
- 深入理解JavaScript类与面向对象编程
- Argspect-0.0.1版本Python包发布与使用说明
- OpenNetAdmin v09.07.15 PHP项目源码下载
- 掌握Node.js: 构建高性能Web服务器与应用程序
- Matlab矢量绘图工具:polarG函数使用详解
- 实现Vue.js中PDF文件的签名显示功能
- 开源项目PSPSolver:资源约束调度问题求解器库
- 探索vwru系统:大众的虚拟现实招聘平台
- 深入理解cJSON:案例与源文件解析
- 多边形扩展算法在MATLAB中的应用与实现
- 用React类组件创建迷你待办事项列表指南
- Python库setuptools-58.5.3助力高效开发
- fmfiles工具:在MATLAB中查找丢失文件并列出错误
- 老枪二级域名系统PHP源码简易版发布
- 探索DOSGUI开源库:C/C++图形界面开发新篇章