首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 话语的 内连接 外连接 以及 交叉连接

2013-04-02 
sql 语句的 内连接 外连接 以及 交叉连接sql的连接 分为三大类1.内连接 2.外连接 3.交叉连接?1.内连接内连

sql 语句的 内连接 外连接 以及 交叉连接

sql的连接 分为三大类

1.内连接 2.外连接 3.交叉连接

?

1.内连接

内连接又分为3类? inner join

等值连接,不等值连接,自然连接

select *from table1 join table2? on table1.条件列名 = table2.条件列名

等价于

?select table1.* ,table2.* from table1 A ,table2 B where table1.条件列名 =table2.条件列名

?select * form table1 cross join table2 where table1.条件列名 = table2.条件列名

2.外连接

外连接分也分为3类

左向(外)连接 left (outer) join

取得的结果个数 = 左表的个数 如果连接后面带了条件 那么右表中不匹配的那个字段显示为null(这种情况只适用于2表之间满足一个条件的记录各表都只有一条 如果对应有多条记录 那么不能那么计算)

右向(外)连接 right(outer) join

取得的结果个数 = 右表的个数 如果连接后面带了条件 那么左表中不匹配的那个字段显示为null(这种情况只适用于2表之间满足一个条件的记录各表都只有一条 如果对应有多条记录 那么不能那么计算)

全(外)连接 full (outer)join

取得的结果个数 = 符合条件匹配的行数+左表未匹配到的行数+右表未匹配到的行数(这种情况只适用于2表之间满足一个条件的记录各表都只有一条 如果对应有多条记录 那么不能那么计算)

完整外部连接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。???

3交叉连接

cross join 取笛卡尔积

1.没有 WHERE 子句的交叉联接

将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小

即 没有where字句? 取得的结果个数 = 左表行数 乘以 右表行数

注意 不带where字句的交叉连接相当于 select * from table1,table2

即 select * from table1,table2?? 等价于 select * from? table1CROSS JOIN table2;

2.有where字句的交叉连接

相当于内连接 +where字句条件

?

热点排行