SQL SERVER 多表操作 内连接、外连接

MSSQL 数据库分为 自然连接、内连接、外连接

1、自然连接和内连接基本相同。不同之处在于,自然连接“=”两侧的列属性值必须相同,内连接可以不同,只要读取数据相同即可。

自然连接 eg. select worker.职工号,depart.部门 from worker,depart where worker.部门编号 = depart.部门编号

2、内连接.一般使用INNER JOIN 关键字来表示内连接,INNER不是必须的可以不写。除了JOIN 关键字,还必须使用ON 或者using关键字

内连接查询操作列出和与链接条件相匹配的数据行,它使用比较运算符比较连接两边的列值。

eg. select worker.职工号,depart.部门 from worker JOIN depart ON worker.部门编号 = depart.部门号 (可以列名称不同,只是比较值)

3、外连接.又分为左连接、有链接、完全连接

左连接.LEFT OUTER JOIN····ON  左侧的为主表,右侧为从表。以主表的每行数据区匹配从表的每行数据,如果能找到行,则返回匹配结果,没有找到的行,主表直接返回数据,从表以NULL填充

右连接.RIGHT OUTER JOIN  ON .和左查询类似。

eg.

A表(a1,b1,c1) B表(a2,b2)
a1  b1   c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四

03 英语 80 04 王五

select A.*,B.* from A
left outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
03 英语 80 NULL NULL

select A.*,B.* from A
right outer join B on(A.a1=B.a2)
结果是:
a1 b1 c1 a2 b2
01 数学 95 01 张三
02 语文 90 02 李四
NULL NULL NULL 04 王五

时间: 2024-10-07 17:54:03

SQL SERVER 多表操作 内连接、外连接的相关文章

sas中的sql(4) 多表操作,内连接,外连接(left | right | full/join),In-Line Views

Understanding Joins 1.Joins combine tables horizontally (side by side) by combining rows. The tables being joined are not required to have the same number of rows or columns. (被join的表不需要行或列与join表的相同) 2.When any type of join is processed, PROC SQL sta

sql server解决无法删除修改拥有外键约束的表或表的记录字段

sql server解决无法删除修改拥有外键约束的表或表的记录字段 问题如下: or 解决步骤: 1.找出该表的所有外键约束 select * from sys.foreign_keys where referenced_object_id=object_id('订单') order by 1 2.删除所有外键约束(注意外键的名字和表的名字分别是哪个!) alter table 订货项目 drop constraint FK__订货项目__订单编号__412EB0B6; 到这就可以把表删掉了~

内连接 外连接 交叉连接

数据库表连接大致分为三种:交叉连接.内连接.外连接 交叉连接(CROSS JOIN):其实就是内连接的一种特例,不带查询条件 内连接(INNER JOIN):相等连接.不等连接.自然连接 外连接(OUTER JOIN):左外联接.右外链接.全外连接(全外连接只有部分RDBMS系统可以做到,例如Oracle.做不到的有MySQL.SQL Server.Access) 交叉连接: 最简单,返回多张表每一行相乘的结果,也就是笛卡尔积.关键字是 CROSS JOIN 写法有三种:CROSS JOIN ,

内连接 外连接 自连接 交叉连接

======================================================== My SQL如下: ======================================================== 1.内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符).包括相等联接和自然联接. 内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行.例如,检索 students和courses表中学生标识号相同的所有行. 2.外联接.外联接

sql server 复制表从一个数据库到另一个数据库

sql server 复制表从一个数据库到另一个数据库 /*不同服务器数据库之间的数据操作*/ --创建链接服务器 exec sp_addlinkedserver 'ITSV ', ' ', 'SQLOLEDB ', '远程服务器名或ip地址 ' exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码 ' --查询示例 select * from ITSV.数据库名.dbo.表名 --导入示例 select * into 表 f

修改SQL Server数据库表的创建时间最简单最直接有效的方法

说明:这篇文章是几年前我发布在网易博客当中的原创文章,但由于网易博客现在要停止运营了,所以我就把这篇文章搬了过来,因为这种操作方式是通用的,即使是对现在最新的SQL Server数据库里面的操作也是一样的,相信很多朋友都会使用到. ----------------------分割线-------------------- 网络上曾经有很多人询问怎么修改SQL Server数据库表的创建时间,但得到的回答多种多样,有的说需要使用某些软件进行修改,有的说需要修改注册表等等,其实这些方法实施起来不但麻

SQL Server系统表sysobjects介绍与使用

原文:SQL Server系统表sysobjects介绍与使用 关于SQL Server数据库的一切信息都保存在它的系统表格里.我怀疑你是否花过比较多的时间来检查系统表格,因为你总是忙于用户表格.但是,你可能需要偶尔做一点不同寻常的事,例如数据库所有的触发器.你可以一个一个地检查表格,但是如果你有500个表格的话,这可能会消耗相当大的人工. 这就让sysobjects表格有了用武之地.虽然我不建议你更新这个表格,但是你当然有权对其进行审查. sysobjects 表 在数据库内创建的每个对象(约

SQL Server 2008 R2:error 26 开启远程连接详解

在学习ASP.NET 过程用到新建数据集并远程连接sql server 2008 数据库,出现下面的错误: <--在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误.     未找到或无法访问服务器.请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接.     (provider: SQL Network Interfaces, error: 26 - 定位指定的服务器/实例时出错)--> 因为sql server 2008默认是不允许远程连接的,sa

SQL Server数据库表重置自增主键号(通常是指ID)

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86