SQL Server: Inner Join及Outer Join, Natrual Jion
一、NATURAL JOIN(自然连接)
两张表通过NATURAL JOIN连接的时候,相当于有个隐含的WHERE子句,对两张表中同名的对应列相比较看是否相等。
二、CROSS JOIN(创建笛卡尔积)
对两张表通过交叉联合产生第三张返回结果集的表。相当于普通的连接。
三、INNER JOIN(内连接)
内连接就相当于普通的CROSS JOIN,只是格式不一样,INNER JOIN在后面有一个ON子句(相当于WHERE)的搜索条件,用于过滤返回的行。
四、OUTER JOIN (外连接)
select * from ta outer join tb on (ta.c1=tb.c1)
outer join告诉DBMS生成结果表,在此表中不仅带有相关(ta.c1=tb.c1)行对,而且还有来自两个源表中任一表的不匹配的行。
五、LEFT OUTER JOIN(左连接) RIGHT OUTER JOIN(右连接)
select * from ta left outer join tb on (ta.c1=tb.c1)
select * from ta right outer join tb on (ta.c1=tb.c1)
left outer join(left join) 告诉DBMS生成包括联合行和任何不匹配的行的结果表,但是不匹配的行系来自查询的from子句中LEFT OUTER JOIN关键词左边的表中。
right outer join(right join)与left outer join(left join)刚好相反。
六、FULL OUTER JOIN(全连接)
FULL OUTER JOIN 返回组合了LEFT OUTER JOIN 和RIGHT OUTER JOIN结果的表。
以下是Inner Join及Outer Join的具体介绍:
在一个正规化的数据库环境中, 我们常会碰到这款情形: 所需的资料并不是放在同一个资料表中, 在这个时候, 你就要用到 Join。
当然 Join 如何将不同的数据库的资料结合, 还要看你如何使用它, 一共有四种不同的 Join 的方式, 在这篇文章中我们将为你介绍 Inner Join 及 Outer Join 以及其应用。
Inner Join
Inner Join 应该是最常用的 Join 方式, 它只会传回符合 Join 规则的纪录, 还是先来看看语法:
Select <要选择的字段> from <主要资料表> <Join 方式> <次要资料表> [On <Join 规则>]
现在我们利用 MS SQL 内建的北风数据库来实际练习一下! 想多了解 MS SQL 的内建数据库, 你可以看看 SQL Server 的内建数据库这篇文章。
请打开
相关文档:
sql中的indexof,函数介绍
取出文件名中的后缀名,例如:1.exe变成exe
declare @fileName varchar(100)
set @fileName='aaa.exe'
select substring(@fileName,charindex('.',@fileName)+1,len(@fileName))
------------------------------------------------
--自定义函数:取文件名的文件类型,例如1.exe的exe
--- ......
SQL面试题(1)
create table testtable1
(
id int IDENTITY,
department varchar(12)
)
select * from testtable1
insert into testtable1 values('设计')
insert into testtable1 values('市场')
insert into testtable1 values('售后')
/*
结果
id department
1 设计
2 市场
......
因为不支持存储过程,所以查询语句如下:
string SLQuery =
"INSERT INTO ParkLocation(ParkName,Latitude, Longtitude,Charge,TotalSpace,EmptySpace,ParkCaption,UpdataTime)"+
&nb ......
由于VBA中代表单个和多个字符是用“?”和“*”代表的,所以许多刚学ADO的朋友经常会问:为什么在SQL语句中这两个符号不能用呢?应该用什么符号来代表呢? 这是因为VBA+ADO所用的驱动的关系,本人对这个也不是太精,具体大家可以去微软的网站上找找答案,所以VBA+ADO的SQL语句中的“*”和“?”这两个符号是用“%”和“_”, ......
SQL RIGHT JOIN 关键字
SQL RIGHT JOIN 关键字
RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。
RIGHT JOIN 关键字语法
SELECT column_name(s)
from table_name1
RIGHT JOIN table_name2
ON table_name1.column_name=table_name2.column_name
注释:在某些数 ......