SQL Server数据库连接查询的种类及其应用

2009-05-12 20:40:38来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

在数据库开发方面,通过单表所表现的实现,有时候需要组合查询来找到我们需要的记录集,这时候我们就会用到连接查询。

连接查询主要包括以下几个方面:

内连接

内连接一般是我们最常使用的,也叫自然连接,是用比较运算符比较要联接列的值的联接。它是通过(INNER JOIN或者JOIN)关键字把多表进行连接。我们通过建立两个表来说明问题:

StudentID StudentName StudentAge

----------- -------------------------------------------------- -----------

1 张三 25

2 李四 26

3 王五 27

4 赵六 28

5 无名氏 27

 

以上是表Student,存放学生基本信息。

BorrowBookID BorrowBookName StudentID BorrowBookPublish

----------------------------------------------------------------------------------------------------------------------

1 马克思主义政治经济学 1 电子工业出版社

2 毛泽东思想概论 2 高等教育出版社

3 邓小平理论 3 人民邮电出版社

4 大学生思想道德修养 4 中国铁道出版社

5 C语言程序设计 NULL 高等教育出版社

以上是表BorrowBook,存放学生所借的书。

以上两张表是通过StudentID进行关联,在这里先执行内联连语句:

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

From Student

Inner Join BorrowBook

On Student.StudentID = BorrowBook.StudentID

上面这个语句也可以写成

Select Student.StudentName,Student.StudentAge,BorrowBook.BorrowBookName,BorrowBook.BorrowBookPublish

FROM Student,BorrowBook

WHERE Student.StudentID = BorrowBook.StudentID

其中,Inner Join是SQL Server的缺省连接,可简写为Join。在Join后面指定具体的表作连接。On后面指定了连接的条件。

运行的结果如下:

tudentName StudentAge BorrowBookName BorrowBookPublish

--------------------------------------------------------------------------------

张三 25 马克思主义政治经济学 电子工业出版社

李四 26 毛泽东思想概论 高等教育出版社

王五 27 邓小平理论 人民邮电出版社

赵六 28 大学生思想道德修养 中国铁道出版社

(所影响的行数为 4 行)

根据查询的结果来进行分析:

如果多个表要做连接,那么这些表之间必然存在着主键和外键的关系。所以需要将这些键的关系列出,就可以得出表连接的结果。在上例中,StudentID是Student表的主键,StudentID又是BorrowBook表的外键,这两个表的连接条件就是Student.StudentID = BorrowBook.StudentID,对比查询结果可以得知,内连接查询只查询出主键StudentID在另张表中存在的记录,像Student表中的第五条记录,因为在BorrowBook表中StudentID不存在,像BorrowBook表中的第五条记录StudentID为Null,对应的Student表中没有记录,所以就不会显示。所以内连接就是将参与的数据表中的每列与其它数据表的列相匹配,形成临时数据表,并将满足数据项相等的记录从临时数据表中选择出来。

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

1) 等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

2) 不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括> 、> =、 <=、 <、!> 、! <和 <> 。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何利用触发器实现两个数据库间的同步

下一篇:SQL Server 2005中利用xml拆分字符串序列