数据库中四种常用的连接语句

前言

       最近在做的一个项目中用到了很多表之间连接的操作,昨天验收的时候,师傅也说了,涉及到多个表的数据的时候,尽量使用SQL语句来查询,避免使用视图,因为如果使用视图的话, 但凡添加了表中的字段,那么原来的视图就不能再用了,还要建立新的,扩展性非常差,所以今天就来总结一下表的连接操作


连接的分类



连接的条件

  1. NATURAL:表示自然连接,即在两个关系的公共属性上做等值连接,运算结果中公共属性只出现一次
  2. ON等值连接条件:具体列出两个关系在哪些相应属性上做等值连接
  3. USING(A1,A2,A3...):类似NATURAL,括号里的是两个表的公共属性,但可以不是全部公共属性

举个例子:(最近在做一个办公用品的小项目,就那这个作为实例吧)

需求说明:这里有两张表,一张是用户表,另一张是部门信息表,需求是每个部门要去领取办公用品,所以他们每一个部门都需要有一个部门代码,这个代码也就是他们登录这个系统填写领用表的用户名,所有的部门级别都是一般用户,还有一个角色是拥有更高权限的管理员,管理员不隶属与部门,所以管理员不存在于部门表中,两张表详细信息如下:

用户信息表(T_userinfo)




部门信息表(T_departmentinfo)




(1)内连接(inner join)

检索出所有部门的用户名、部门名称、级别,我们分析一下,用户名是一个连接两个表的桥梁,因为userID就是departmentCode,所以使用ON条件,将二者做等值连接,所以说必须满足这个条件才会被检索出来,所以这些数据中没有管理员的信息

<span style="font-size:18px;">select u.userid,d.departmentName,u.[level] from [dbo].[T_userinfo] u
inner join [dbo].[T_departmentinfo] d
 on u.userID =d.departmentCode</span>

查询结果:




(2)左/右/完全外连接(left/right/full outer join)

这三种外连接的区别就是基准不同,左外是以左边的表,也就是T_userinfo表,这张表中的信息如果在T_department中没有数据,那么部门表中涉及到的字段就是NULL,右外连接是以T_department表为基准,而完全外连接则没有基准,所有数据都检索出来,这三种语句只有一个关键字的区别,所以我只写了一个语句

select u.userid,d.departmentName,u.[level] from [dbo].[T_userinfo] u
left outer join  [dbo].[T_departmentinfo] d
 on u.userID =d.departmentCode

左/右外连接查询语句对比的效果图:



完全外连接的效果图:




总结:


        其实这个项目中还涉及了一些其他比较有意思的查询语句,以后有时间在总结。不管怎样,这个项目终于结束了,在做完牛腩后,有机会接一个和牛腩差不多的项目感觉特别的好,对于asp.net中的一些控件的使用更加的熟练了,而且在看ASP.NET的视频,就觉得简单了很多,因为老师讲的内容在做这个小项目的时候,就找了很多资料,看了很多博客,一点点摸索,希望在今后可以深入学习.Net开发的知识。


  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 26
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值