数据库的多表联结

来源:互联网 发布:乐高机器人用什么编程 编辑:程序博客网 时间:2024/06/11 23:53
数据库的联结分为三种

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

1>等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结 果中列出被连接表中的所有列,包括其中的重复列。 
2>不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的 列的列值。这些运算符包括>、>=、<=<、!>、!<和<>。 
3>自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选 择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。  

2.外联结:外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。

3.交叉联结:交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到 结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查 询条件的数据行数例,titles表中有6类图书,而publishers表中有8家出版社,则下 列交叉连接检索到的记录数将等于6*8=48行。 

举个例子简单说明下:

创建两张表student、gread
student                    gread
id      name         id        score
1        aa             1         60
2        bb             2         80
3        cc
内联结:select  s.id,s.name,g.score from student s inner join gread g on s.id=g.id
结果为:   id   name       score
           1     aa          60
           2     bb          80
左外联结:select  s.id,s.name,g.score from student s left  join gread g on s.id=g.id   
结果为:   id   name      score
           1     aa         60
           2     bb         80
           3     cc         null
右外联结:select  s.id,s.name,g.score from student s right  join gread g on s.id=g.id  
结果为:   id   name      score
           1     aa         60
           2     bb         80
交叉联结:select type,pub_name from titles cross join publishers order by type



更多精彩请点击 http://www.gopedu.com/

0 0
原创粉丝点击