视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库查询内外连接
2020-11-09 16:21:45 责编:小采
文档


数据库查询内外连接 create table tmp3 ( age int, name char(100) ) GO create table tmp3 { age int, made char(100) } GO www.2cto.com insert into tmp1 values(10,liwei) insert into tmp1 values(11,lijing) insert into tmp1 values(12,lijia) insert


数据库查询内外连接

create table tmp3

(

age int,

name char(100)

)

GO

create table tmp3

{

age int,

made char(100)

}

GO

www.2cto.com

insert into tmp1 values(10,'liwei')

insert into tmp1 values(11,'lijing')

insert into tmp1 values(12,'lijia')

insert into tmp3 values(10,'liwei')

insert into tmp3 values(12,'lijing')

insert into tmp3 values(14,'lijia')

--内连接:从结果中删除其他被连接表中没有匹配行的所有行

select * from tmp1,tmp3 where tmp1.age = tmp3.age

select * from tmp1 join tmp3 on tmp1.age = tmp3.age

age name age name

10 liwei 10 liwei

12 lijia 12 lijing

--左外连接:保留第一个表中的所有行,但只包含第二个表与第一表匹配的行,第二个表相应的空行被放入NULL值

select * from tmp1 left join tmp3 on tmp1.age = tmp3.age

10 liwei 10 liwei

11 lijing NULL NULL

12 lijia 12 lijing

--右外连接:保留了第二个表的所有行,但只包含第一个表与第二个表匹配的行,第一个表相应行被放入NULL值

select * from tmp1 right join tmp3 on tmp1.age = tmp3.age

10 liwei 10 liwei

12 lijia 12 lijing

NULL NULL 14 lijia

www.2cto.com

--全外连接:把两个表的所有行都显示在结果表周苏红,并尽可能多的匹配数据和连接条件

select * from tmp1 full join tmp3 on tmp1.age = tmp3.age

10 liwei 10 liwei

12 lijia 12 lijing

NULL NULL 14 lijia

11 lijing NULL NULL

--交叉连接(笛卡尔积):两个表的记录进行交叉组合。其中不能有on条件。

select * from tmp1 cross join tmp3

10 liwei 10 liwei

11 lijing 10 liwei

12 lijia 10 liwei

10 liwei 12 lijing

11 lijing 12 lijing

12 lijia 12 lijing

10 liwei 14 lijia

11 lijing 14 lijia

12 lijia 14 lijia

create table student

(

student_no int,

name char(100),

group_no int

)

insert into student values(100,'liwei',99)

insert into student values(101,'lijia',100)

insert into student values(102,'lijing',101)

www.2cto.com

--自连接:指同一个表自身与自身进行连接。如果同一时间需要一个表中两个不同行的信息(一般数据库操作每次只操作其中一行的多列),则需要将表与自身连接。为了更好地理解自身连接,用户可以把一个表想象成两个的表。而在from子句中表被列出了两次。

select a.student_no,a.name,b.student_no as 组长编号,b.name as 组长名称 from student a,student b where a.group_no = b.student_no

student_no name 组长编号 组长名称

101 lijia 100 liwei

102 lijing 101 lijia

下载本文
显示全文
专题