数据库多表连接查询详解
来源:互联网 发布:二手房软件排名 编辑:程序博客网 时间:2024/04/25 18:09
数据库多表连接查询详解
通过连接运算符可以实现多个表查询。连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志。
在关系数据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放在一个表中。当检索数据时,通过连接操作查询出存放在多个表中的不同实体的信息。连接操作给用户带来很大的灵活性,他们可以在任何时候增加新的数据类型。为不同实体创建新的表,而后通过连接进行查询。
连接可以在SELECT
SQL-92标准所定义的FROM子句的连接语法格式为:
FROM
[ON
其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。
join_type
外连接分为左外连接(LEFT
交叉连接(CROSS
连接操作中的ON
无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。
(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
2、不等连接:
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT
FROM
ON
又如使用自然连接,在选择列表中删除authors
SELECT
FROM
ON
(二)外连接
内连接时,返回查询结果集合中的仅是符合查询条件(
外联接可以是左向外联接、右向外联接或完整外部联接。
在
(2)右向外联接:右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
(3)完整外部联接:完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回
如下面使用左外连接将论坛内容和作者信息连接起来:
SELECT
ON
下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:
SELECT
FROM
ON
(三)交叉连接
交叉连接不带WHERE
例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等
于6*8=48行。
SELECT
FROM
ORDER
- 数据库多表连接查询详解
- 数据库多表连接查询详解
- 数据库多表连接查询详解
- 数据库多表连接查询详解
- 数据库多表连接查询详解
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 连接数据库,多表查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询
- 数据库多表连接查询(外连接和内连接)
- linux 编译 live555
- VC实现应用程序在线升级
- 一个最简单的C#事件例子
- 关于C#静态构造函数的几点说明
- C#、.Net经典面试题
- 数据库多表连接查询详解
- Sql server中Collation …
- Sql语句中group by 子句的规则
- 什么是数据仓库(Data Warehouse)
- C#委托之个人理解
- C# Socket异步通信整理
- C#中string类型赋值问题
- C#事件(event)解析
- C#中有关string和byte[]转换的问题