运算符等构成。
无论哪种连接都不克不及对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接
连接。例如:
SELECT p1.pub_id,p2.pub_id,p1.pr_info
FROM pub_info AS p1 INNER JOIN pub_info AS p2
ON DATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)
(一)内连接
内连接查询操纵列出与连接前提匹配的数据行,它应用斗劲运算符斗劲被连接列的列值。内连接分三种:
1、等值连接:在连接前提中应用便是号(=)运算符斗劲被连接列的列值,其查询成果中列出被连接
表中的所有列,包含此中的反复列。
2、不等连接: 在连接前提应用除便是运算符以外的其它斗劲运算符斗劲被连接的列的列值。这些
运算符包含>、>=、<=、<、!>、!<和<>。
3、天然连接:在连接前提中应用便是(=)运算符斗劲被连接列的列值,但它应用选择列表指出查询
成果凑集中所包含的列,并删除连接表中的反复列。
例,下面应用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
又如应用天然连接,在选择列表中删除authors 和publishers 表中反复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二)外连接
内连接时,返回查询成果凑集中的仅是合适查询前提( WHERE 搜刮前提或 HAVING 前提)和连接前提
的行。而采取外连接时,它返回到查询成果凑集中的不仅包含合适连接前提的行,并且还包含左表(左外
连接时)、右表(右外连接时)或两个边接表(全外连接)中的所稀有据行。
如下面应用左外连接将论坛内容和作者信息连接起来:
SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
下面应用全外连接将city表中的所有作者以及user表中的所有作者,以及他们地点的城市:
SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
--------------------------------------------------------------------------------
-- 作者:belin2000
-- 公布时候:2004-6-8 22:09:38
--
三)交叉连接
交叉连接不带WHERE 子句,它返回被连接的两个表所稀有据行的笛卡尔积,返回到成果凑集中的数
据行数便是第一个表中合适查询前提的数据行数乘以第二个表中合适查询前提的数据行数。
例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等
于6*8=48行。
SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type
UNION运算符可以将两个或两个以上上SELECT语句的查询成果凑集归并成一个成果凑集显示,即履行结合查询。UNION的语法格局为:
_statement
UNION [ALL] statement
[UNION [ALL] statement][…n]
此中statement为待结合的SELECT查询语句。
ALL选项默示将所有行归并到成果凑集中。不指定该项时,被结合查询成果凑集中的反复行将只保存一
行。
结合查询时,查询成果的列题目为第一个查询语句的列题目。是以,要定义列题目必须在第一个查询语
句中定义。要春结合查询成果排序时,也必须应用第一查询语句中的列名、列题目或者列序号。
在应用UNION 运算