SQLServer数据库之连接查询


表的连接查询的几种方法介绍:

inner join on内连接,left join on 左连接 , rigth join on 右连接, full join on 全连接

内连接(inner join)

内连接为查询两表的共有的数据,取两表的交集

语法:

select [查询内容] from [表1] inner join [表2] on [连接条件]

例如:查询学生所在的班级

select s.name as 姓名,c.name as 班级 from student s inner join class c on s.classId=c.id
--等价与
select s.name as 姓名 ,c.name as 班级 from student s, class c where s.classId=c.id --必须加上条件,不然会出大问题
--也可以把inner省掉效果一样 默认为Inner join 连接

左连接(left join)

左连接以查询主表全部数据,如果从表没有响应数据则以null作为填充

(主表为查询表,从表为连接的表)

语法:

select [查询内容] from [表1] left join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s
left join class c on s.classId=c.id

如图:小思和小林像个班级的孩子

右连接(right join)

从表查询全部数据,如果主表没有数据则以null填充

(主表为查询表,从表为连接的表)

语法:

select [查询内容] from [表1] right join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s
right join class c on s.classId=c.id

如图:大三和大四没有学员

全连接(full join)

主从表全部数据,如果主从表没有对应数据则以null填充

(主表为查询表,从表为连接的表)

语法:

select [查询内容] from [表1] full join [表2] on [连接条件]

例如

select s.name as 姓名,c.name as 班级 from student s
full join class c on s.classId=c.id

如图:

总结:

在项目中为了适应不同的需求选择合适的连接方式

SQLServer数据库之连接查询的更多相关文章

  1. sqlServer数据库常用连接字符串

    sqlServer   数据库常用连接字符串 用户名和密码验证的方式去连接到数据库服务器 <add name="conStr" connectionString=" ...

  2. MySql数据库之连接查询

    在MySql数据库中连接查询分为以下几种方式: 1.内连接查询 内连接查询通过关键字 inner join 关键字来实现,通过代码实现: select * from 表1 inner join 表2 ...

  3. ASP.net分别连接SQLserver数据库与连接Access数据库精英版

    -------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...

  4. SQLServer多表连接查询

    双表内部连接查询 select wName,dName from DepartMent,Worker where DepartMent.dID=Worker.did select wName,dNam ...

  5. 查找sqlserver数据库中,查询某值所表名和字段名

    有时候我们想通过一个值知道这个值来自数据库的哪个表以及哪个字段,通过一个存储过程实现的.只需要传入一个想要查找的值,即可查询出这个值所在的表和字段名. 前提是要将这个存储过程放在所查询的数据库. CR ...

  6. C语言与sqlserver数据库

    原文:C语言与sqlserver数据库 1.使用C语言来操作SQL SERVER数据库,采用ODBC开放式数据库连接进行数据的添加,修改,删除,查询等操作. step1:启动SQLSERVER服务,例 ...

  7. SQL多表连接查询以及mysql数据库、sqlserver数据库常见不同点

    mysql数据库表及数据准备语句: USE test; DROP TABLE IF EXISTS `teacher_table`; DROP TABLE IF EXISTS `student_tabl ...

  8. C#通过SqlConnection连接查询更新等操作Sqlserver数据库

    Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库. 数据库连接字符串: string connStri ...

  9. 使用thinkphp连接sqlserver数据库时提示“系统不支持:sqlsrv”

    习惯了使用php跟mysql组合,现在接到项目需要调用客户线下的系统软件的数据,具了解,这个软件的数据库是用sqlserver数据库也就是常说的mssql数据库了. 那么我现在需要用PHP连接sqls ...

随机推荐

  1. mysql 版本在springboot 中定义位置

  2. 正则:支持6-20位数字、字母和特殊字符(仅限!@#$%^&*())

    checkpwd(newpsd); function checkpwd() { var newpsd = $(":input[name='newpsd']").val(); var ...

  3. 嵌套div的onClick事件问题

    嵌套div的onClick事件问题我在下面的代码中的外层div中加了onClick事件,这样当鼠标点击这个div的时候就会跳转了.但是我在图片上加了一些其他效果,所以当鼠标点击中间的img时不能触发跳 ...

  4. Python实用案例,Python脚本,Python实现每日更换“必应图片”为“桌面壁纸”

    往期回顾 Python实现自动监测Github项目并打开网页 Python实现文件自动归类 Python实现帮你选择双色球号码 前言: 今天我们就利用python脚本实现每日更换"必应图片& ...

  5. 【LeetCode】133. 克隆图

    133. 克隆图 知识点:图:递归;BFS 题目描述 给你无向 连通 图中一个节点的引用,请你返回该图的 深拷贝(克隆). 图中的每个节点都包含它的值 val(int) 和其邻居的列表(list[No ...

  6. rot位移密码详解(rot5、rot13、rot18、rot47)

    最近训练CTF的时候,发现密码学这块的知识不太系统,所以自己接下来会陆陆续续整理出来 rot密码 rot密码其实可以看作是凯撒密码的一种变式 本质都是移位运算 rot密码按种类大致分为以下几类 rot ...

  7. Python语法之用户交互与基本运算符

    一.与用户交互 1.接收用户输入 python3中的input会把用户输入的所有内容都存成str类型 age = input("请输入您的年龄: ") # "内容&quo ...

  8. Android开发失业六个月了,无限的焦虑

    最近到网上看到这样一个帖子: Android开发,坐标魔都:目前为止已经失业六个月,找工作期间,尤其是最近两天确实心态不好.要么没有面试,要么给的工资不符合预期( hr 压价太狠了,原先说的 19k, ...

  9. 关于Servlet技术

    1.Servlet 技术           a)什么是 Servlet                     1.Servlet 是 JavaEE 规范之一.规范就是接口              ...

  10. NOIP 模拟 $11\;\rm math$

    题解 签到题(然而还是不会) 考虑所有可能的值一定是 \(\in [0,k)\),且一定为 \(gcd(a_1,a_2,...a_n,k)\) 的倍数. 证明: 设 \(tmp=b_1a_1+b_2a ...