新闻动态
新闻动态
NEWS INFORMATION

SQL连接查询介绍

发布日期:2022-02-05 08:17 | 文章来源:站长之家
  SQL-92标准所定义的FROM子句的连接语法格式为:   FROMjoin_tablejoin_typejoin_table
  [ON(join_condition)]   其中join_table指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作,对同一个表操作的连接又称做自连接。   join_type指出连接类型,可分为三种:内连接、外连接和交叉连接。内连接(INNERJOIN)使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与连接条件相匹配的数据行。根据所使用的比较方式不同,内连接又分为等值连接、自然连接和不等连接三种。外连接分为左外连接(LEFTOUTERJOIN或LEFTJOIN)、右外连接(RIGHTOUTERJOIN或RIGHTJOIN)和全外连接(FULLOUTERJOIN或FULLJOIN)三种。与内连接不同的是,外连接不只列出与连接条件相匹配的行,而是列出左表(左外连接时)、右表(右外连接时)或两个表(全外连接时)中所有符合搜索条件的数据行。   交叉连接(CROSSJOIN)没有Where子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。   连接操作中的ON(join_condition)子句指出连接条件,它由被连接表中的列和比较运算符、逻辑运算符等构成。   无论哪种连接都不能对text、ntext和image数据类型列进行直接连接,但可以对这三种列进行间接连接。例如:   Selectp1.pub_id,p2.pub_id,p1.pr_info
  FROMpub_infoASp1INNERJOINpub_infoASp2
  ONDATALENGTH(p1.pr_info)=DATALENGTH(p2.pr_info)   (一)内连接   内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:   1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。   2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。   3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。   例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:   Select*
  FROMauthorsASaINNERJOINpublishersASp
  ONa.city=p.city   又如使用自然连接,在选择列表中删除authors和publishers表中重复列(city和state):   Selecta.*,p.pub_id,p.pub_name,p.country
  FROMauthorsASaINNERJOINpublishersASp
  ONa.city=p.city   (二)外连接   内连接时,返回查询结果集合中的仅是符合查询条件(Where搜索条件或HAVING条件)和连接条件的行。而采用外连接时,它返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接时)、右表(右外连接时)或两个边接表(全外连接)中的所有数据行。如下面使用左外连接将论坛内容和作者信息连接起来: Selecta.*,b.*FROMluntanLEFTJOINusertableasb
  ONa.username=b.username
     下面使用全外连接将city表中的所有作者以及user表中的所有作者,以及他们所在的城市:   Selecta.*,b.*
  FROMcityasaFULLOUTERJOINuserasb
  ONa.username=b.username   (三)交叉连接   交叉连接不带Where子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下列交叉连接检索到的记录数将等   于6*8=48行。   Selecttype,pub_name
  FROMtitlesCROSSJOINpublishers
  ORDERBYtype
  [Post=0][/Post]

美国服务器租用

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部