sql查询 表连接-sql server 连表查询

阿托希斯_普瑞斯托 阅读:104次 时间:2023-12-08 16:16:26
最佳经验
由作者撰写原创经验并推荐置顶

1、内连接:表中的行互相连接,2、外连接:参与连接的表有主次之分,主表的每一行数据去匹配从表的数据列,符合连接条件的数据将直接返回到结果集中,不符合连接条件的数据列将以null填充后返回到结果集中,其中外连接又分左外连接、右外连接和全连接3种,以下内容是由微蓝经验网用户发布sql查询 表连接-sql server 连表查询,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!

工具与材料

sql

方法/步骤
  1. 1/8

    首先建两张表,分别插入数据

    create table Nation

    (

    nId int primary key,

    Name varchar(20)

    )

    insert Nation(nid,name) values(1 , '汉族')

    insert Nation (nid,name) values(2 , '苗族')

    insert Nation (nid,name) values(3 , '回族')

    insert Nation (nid,name) values(4 , '壮族')

    create table Emp

    (

    eId varchar(10) primary key,

    eName varchar(8),

    eSex char(2),

    nId int

    )

    insert Emp(eid,ename,esex,nid) values('e01' , '大白菜' , '男' , 2)

    insert Emp(eid,ename,esex,nid) values('e02' , '大萝卜' , '女' , 4)

    insert Emp (eid,ename,esex,nid) values('e03' , '小猪肉' , '男' , 1)

    insert Emp (eid,ename,esex,nid) values('e04' , '公猪肉' , '女' , 5)

    sql查询 表连接-sql server 连表查询
  2. 2/8

    a,INNER JOIN:内连接,如果表中有至少一个匹配,则返回行

    b,LEFT JOIN:左连接,即使右表中没有匹配,也从左表返回所有的行

    c,RIGHT JOIN:右连接,即使左表中没有匹配,也从右表返回所有的行

    d,FULL JOIN:完整外连接,只要其中一个表中存在匹配,则返回行

    e,cross join: 交叉连接,两表的倍数

  3. 3/8

    inner join 内连接,如果表中有至少一个匹配,则返回行(下面三种写法 返回的结果是一样的)

    --内联接:写法1:(inner join):返回2表中满足条件的数据(条件:on后面的)

    select eId,eName , emp,nId , Name

    from nation inner join Emp

    on emp,nid = nation,nid

    --内联接:写法2:省略inner:

    select eId,eName , emp,nId , Name

    from nation join Emp

    on emp,nid = nation,nid

    --内联接:写法3 用","把inner join替换 后面直接加表2名:

    select eId,eName , emp,nId , Name

    from nation , Emp

    where emp,nid = nation,nid

    sql查询 表连接-sql server 连表查询
  4. 4/8

    LEFT JOIN:左连接,即使右表中没有匹配,也从左表返回所有的行, 右表不匹配的用null 填充

    --左外联接

    select * from Emp left join nation

    on emp,nid = nation,nid

    sql查询 表连接-sql server 连表查询
  5. 5/8

    RIGHT JOIN:右连接,即使左表中没有匹配,也从右表返回所有的行

    --右外联接

    select * from Emp

    select * from Nation

    select * from Emp right join nation

    on emp,nid = nation,nid

    sql查询 表连接-sql server 连表查询
  6. 6/8

    FULL JOIN:完整外连接,只要其中一个表中存在匹配,则返回行

    --完整外联接

    select * from Emp

    select * from Nation

    select * from Emp full join nation

    on emp,nid = nation,nid

    sql查询 表连接-sql server 连表查询
  7. 7/8

    cross join: 交叉连接,两表的倍数

    --交叉表联接

    select * from Emp cross join Nation

    sql查询 表连接-sql server 连表查询
  8. 8/8

    联合查询union(union all)

    --联合查询

    select ename from emp

    union select name from nation

    select ename from emp

    union all select

    name from nation

    union是一个特殊的运算符,用于将两个或两个以上的查询产生一个结果集,join将信息水平连接(添加更多列),而union将信息垂直连接(添加更多行),当使用union处理查询时,要注意以下几个关键点,(1)、所有union的查询必须在select列表中有相同的列数,即如果第一个查询有3个列数,第二个查询也要只有3个列数,(2)、union返回结果的标题集仅从第一个查询中获得,无论第二个查询如何命名或取别名都不会更改,(3)、查询中对应的列的数据类型必须隐式一致,注意不要求完全一致,只需要隐式一致。

    sql查询 表连接-sql server 连表查询
相关评论发表评论

声明 未经许可,请勿转载。

Excel如何按名字提取另一张表上数据(跨表查询)
怎样看win10电脑连接的wifi密码最新,看完之后你也是专家了!
怎么查qq登陆情况-怎么查询qq登陆记录,如何查看QQ是否存在异常
微信怎么查名下帐户,微信怎么查询名下账户
如何查询联想笔记本带线鼠标的属性,不看后悔!
百度汉语查询“搓捻”的拼音怎么拼,支你几招!
怎么看品牌销量 如何查询品牌方的销售趋势?
腾讯文档建立-腾讯文档如何创建会议议程表
wifi密码查看器(已连接的wifi)(安卓),快试试这种好方法!
excel文字怎么纵向 Excel表中如何使文字纵向排列
怎样查我的驾驶证还有多少分,怎么样查询自己的驾驶证还有多少分
word sql-在Word中插入Access、SQL数据库数据

新手帮助反馈投诉免责声明服务协议

© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1