数据库视频第七章主要讲解了连接和查询两大部分,首先连接包括基本连接、内连接、左外连接、右外连接、全连接、交叉连接、自连接。查询包括:联合查询、使用子查询、XML查询、for xml查询、exists关键字查询、交查询intersect
基本连接
使用原则:
1、每个目标列钱都要加上基表名称
2、FROM字句应包括所有使用的基表
3、where字句应定义一个同等连接
举例将班级信息和学生信息相连接
select A.姓名,a.性别,a.出生年月,a.学号,b.班级名,a.家庭住址
from 学生信息 A,班级信息 B
where a.所属班级=b.班级编号
内连接
语法格式
Select 查找的目标列
From table1 inner join table2 [on join+条件]
[where条件]
[order by 条件]
举例:
select a.班级名,a.班级人数,b.姓名,b.联系方式
from 班级信息 A inner join 辅导员信息 b
on a.辅导员=b.辅导员编号
左外连接
内连接消除与另一个表的任何行不匹配的行,而外链接会返回FROM字句中提到的至少一个表或视图中的所有行,只有这些行符合任何搜索条件
在外链接有主从之分,如果符合条件,则直接返回到查询结果中,如果主表中的行在从表中没有找到匹配的行,主表的行任然保留,并返回到查询结果中
右外连接
Select A.班级名,a.班级人数,b.姓名,b.联系方式
From 辅导员信息B RIGHT OUTER join 班级信息a
On A.辅导员=B.辅导员编号
左右外连接的互换:只需要把RIGHT改成LEFT,把right或者是left的左右两侧的表互换即可
全连接
select a.班级名,a.班级人数,B.姓名,b.家庭住址
from 学生信息 b full outer join 班级信息 a
on a.班级编号=b.所属班级
交叉连接
它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数
语法格式:
Select 列名
From table1 cross join table2
Where 条件进行筛选
举例
select a.班级名,a.班级人数,b.姓名
from 班级信息 A cross join 学生信息 B
自连接
在一个表上进行连接
举例:
select A.班级名,a.班级人数,b.班级名
from 班级信息