1.概述通过连接运算符可以实现多表查询。连接是关系数据库模型的主要特征,也是它区别于其他类型数据库管理系统的标志。多表连接查询是使用Sql的基本操作,但是连接方式有很多种。
熟练使用这些连接方法可以简化Sql语句,提高数据库操作的效率。在关系数据库管理系统中,建立表时不需要确定数据之间的关系,一个实体的所有信息往往都存储在一个表中。当检索数据时,
通过连接操作查询多个表中存储的不同实体的信息。连接操作为用户提供了极大的灵活性,他们可以随时添加新的数据类型。为不同的实体创建新表,然后通过连接进行查询。
可以在SELECT语句的FROM子句或WHERE子句中建立连接,在FROM子句中指出时,将连接操作与WHERE子句中的搜索条件区分开来是有帮助的。所以,
建议在Transact-SQL中使用此方法。
二。基本语法和方法SQL-92标准中定义的FROM子句的连接语法格式是:
2.外部连接可分为三种:左外部连接(左外部连接或左连接)、右连接(右外部连接或右连接)和全外部连接(全外部连接或全连接)。
选择p1.pub_id,p2.pub_id,p1。pr _ infoFROMpub _ info asp1 innerjoinpub _ info asp2 ondatalength(P1。pr _ info)=DATALENGTH(p2。公关信息)(一)内连接内连接查询操作列出与连接条件匹配的数据行,
SELECT * from authorsasaninnerjoinpublishersaspona。city=p . city selecta。*,p.pub_id,p.pub_name,p . country from author sasaninnerjoinpublishersaspona。城市=p .城市又如使用自然连接,
2.右连接或右外连接(right join)右连接:(也叫右连接,给两个表的匹配行,以右边的表为准。如果右表中有行而左表中没有,
那么右边表格对应行选中的列为空,允许右边的矩阵表对应左边表格中的多条符合条件的记录。(3) Cross-join Cross-join没有WHERE子句,它返回被连接的两个表的所有数据行的笛卡尔积。
返回到结果集的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例如,titles表中有6种书,publishers表中有8个出版商。
那么下面的交叉连接检索到的记录数将等于6*8=48行。
SELECTtype,pub_nameFROMtitlesCROSSJOINpublishersORDER