查询计算机系所有借阅过图书的学生姓名,第七讲 数据库的查询:多表连接查询...

SQL Server 2000

第七讲 数据库的查询:多表连接查询

一、多表连接查询基本知识:p79

1.多表连接查询的概念:若一个查询同时涉及两个或两个以上的表,则称之为多表连接查询。

连接查询可以对两个或两个以上的表进行查询,查询结果通常含有参加连接运算的两个表(或多个表)的指定列。即当用户所需要的数据涉及到两个或两个以上的表,那么就要对两个或两个以上的表先进行连接,然后再查询。

例如:在xsbook库中查找于2006年9月9日借阅了图书的学生姓名,专业名及所借图书的ISBN:

select 姓名,专业名,isbn

from

xs,jy

where

xs.借书证号=jy.借书证号 and 借书时间='2006-09-09'

注意:两个表间是通过其相同的字段(即外码)建立联系的。

外码:如果某字段或字段组合不是本表的主码,却是另一个表的主码,这样的字段或字段组合在本表中被称为外码。

一个表的外码的取值应参照另一个表的主码。

2.连接类型:inner join:内连接,默认的连接类型。又可细分为等值连接和不等值连接。

left join或left outer join:左(外)连接

right join或right outer join:右(外)连接

full join或full outer join: 完全(外)连接

cross join:交叉连接

二、多表连接查询:

1、内连接(inner join):按照指定的连接条件连接两个表,查询结果为满足连接条件的行,是最常用的连接类型。

(1).内连接的语法格式:(这里指等值连接)

格式一:select

字段名列表 from 表名1,表名2[,...n]

where 表名1.列名=表名2.列名 [and ...n]

格式二: select

字段名列表

from 表名1 {[inner] join 表名2

on 表名1.列名=表名2.列名}[...n]

(2).内连接举例:

例1:在xsbook数据库中查找已经借阅了图书的学生姓名,出生时间,专业名,以及他们所借阅图书的ISBN和借书时间。

格式一:

select 姓名,出生时间,专业名,ISBN,借书时间

from

xs,jy

where

xs.借书证号=jy.借书证号

你可能感兴趣的:(查询计算机系所有借阅过图书的学生姓名,第七讲 数据库的查询:多表连接查询...)