数据库中四种常用的连接语句
来源:互联网 发布:己知阴影面积为10dm 编辑:程序博客网 时间:2024/05/22 12:20
前言
最近在做的一个项目中用到了很多表之间连接的操作,昨天验收的时候,师傅也说了,涉及到多个表的数据的时候,尽量使用SQL语句来查询,避免使用视图,因为如果使用视图的话, 但凡添加了表中的字段,那么原来的视图就不能再用了,还要建立新的,扩展性非常差,所以今天就来总结一下表的连接操作
连接的分类
连接的条件
- NATURAL:表示自然连接,即在两个关系的公共属性上做等值连接,运算结果中公共属性只出现一次
- ON等值连接条件:具体列出两个关系在哪些相应属性上做等值连接
- 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] uinner 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] uleft outer join [dbo].[T_departmentinfo] d on u.userID =d.departmentCode
左/右外连接查询语句对比的效果图:
完全外连接的效果图:
总结:
其实这个项目中还涉及了一些其他比较有意思的查询语句,以后有时间在总结。不管怎样,这个项目终于结束了,在做完牛腩后,有机会接一个和牛腩差不多的项目感觉特别的好,对于asp.net中的一些控件的使用更加的熟练了,而且在看ASP.NET的视频,就觉得简单了很多,因为老师讲的内容在做这个小项目的时候,就找了很多资料,看了很多博客,一点点摸索,希望在今后可以深入学习.Net开发的知识。
0 0
- 数据库中四种常用的连接语句
- oracle连接数据库的语句和常用语句
- asp网站基本构建(常用数据库的连接语句)
- 数据库的连接语句
- 常用数据库的连接
- 常用数据库的连接
- 各种数据库的连接语句
- 连接数据库的配置语句
- C# 连接MySQL数据库的连接语句
- 常用的SQL数据库语句
- MySQL数据库的常用语句
- ibatis常用的数据库语句
- 常用数据库的validationQuery语句
- android 常用的数据库语句
- 常用数据库语句的整理
- 常用的数据库sql语句
- 常用数据库的validationQuery语句
- 常用的基本数据库语句
- UIAlertController设置
- ASP.NET MVC 网站开发总结(二)——一个或多个文件的异步或同步上传
- JAVA定时器启动日期
- 用getChildFragmentManager解决Fragment嵌套Fragment数据丢失的问题
- 数组中第k大(或小)的元素(leetcode215)
- 数据库中四种常用的连接语句
- 《高性能JavaScript》摘要
- Java 访问权限问题
- 找出一组数中只出现一次的数1
- 处理数据——分为测试集和训练集
- 两个服务器之间文件传递(JAVA)
- 网易这样用sys schema优雅提升MySQL易用性
- JSON for java入门总结
- 蓝桥杯 神奇的算式