连接查询
连接查询是关系数据库中最主要的查询,主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,然后通过连接进行查询。
基本信息
- 中文名
连接查询
- 解释
关系数据库中最主要的查询
- 包括
内连接、外连接
- 通过
连接运算符
方式形式
内连接的连接查询结果集中仅包含满足条件的行,内连接是 SQL Server缺省的连接方式,可以把 INNERJOIN简写成 JOIN ,根据所使用的比较方式不同, 内连接又分为等值连接、 自然连接和不等连接三种; 交叉连接的连接查询结果集中包含两个表中所有行的组合; 外连接的连接查询结果集中既包含那些满足条件的行,还包含其中某个表的全部行,有3种形式的外连接:左外连接、右外连接、全外连接。
交叉连接
交叉连接即 笛卡儿乘积,是指两个关系中所有 元组的任意组合。一般情况下,交叉查询是没有实际意义的。
例如:如果希望得到学生表和选课表两个关系模式的乘积,查询语句为
SELECT *
FROM学生表 CROSS JOIN选课表
内连接
内连接是一种最常用的连接类型。内连接查询实际上是一种任意条件的查询。使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录,也就是在内连接查询中,只有满足条件的 元组才能出现在结果关系中。
例如:要查询每个已经选课的学生的情况,查询语句为
SELECT*
FROM学生表 INNER JOIN选课表 ON学生表.学号=选课表.学号
根据比较方式分为:
1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被 连接表中的所有列,包括其中的重复列。
2)不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3) 自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除 连接表中的重复列。
自连接
如果在一个连接查询中,涉及到的两个表都是同一个表,这种查询就称为自连接查询。同一张表在 FROM字句中多次出现,为了区别该表的每一次出现,需要为表定义一个别名。自连接是一种特殊的 内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表。
例如:要求检索出学号为 20210的学生的同班同学的信息,查询语句为