当前位置:   article > 正文

【数据库的连接查询】

连接查询

连接查询是SQL中常见的一种查询语句,它可以将两个或多个表中的数据关联在一起并返回一个结果集。连接查询分为内连接、外连接和交叉连接。

内连接:内连接指的是连接两个表中共有的数据,即在两个表中都存在的数据才能被查询出来。

外连接:外连接指的是连接两个表中不完全重叠的数据,即在一个表中存在的数据在另一个表中不存在,或者在两个表中都存在但是某些字段的值不一样的数据。

交叉连接:交叉连接又称笛卡尔积,它返回两个表的所有可能组合。这种连接方式使用较少,因为它通常会返回过多的结果,占用过多的计算资源。

下面是一些连接查询的示例:

连接查询:连接查询主要应用于多表进行查询,通过各个表中相同属性列的相关性进行数据查询。 谓词连接:在SELECT语句的WHERE子句中使用比较运算符给出连接条件对多张表进行连接,这种表示形式称为连接谓词表示形式。

  1. SELECT <输出列表>
  2. FROM <1><2>
  3. [WHERE <1>.<列名> <连接操作符> <2>.<列名>]
  4. --其中:连接操作符主要为:=、>、<、>=、<=、!=、<>、!>、!<

JOIN连接:JOIN连接又分为内连接、外连接和交叉连接,其中外连接又分为左外连接、右外连接和完全外连接。

内连接。内连接按照ON所指定的连接条件合并两个表,返回满足条件的行。

外连接。外连接的结果集不但包含满足连接条件的行,还包括相应表中的所有行。

左外连接。结果集中除了包括满足连接条件的行外,还包括左表的所有行。

右外连接。结果集中除了包括满足连接条件的行外,还包括右表的所有行。

完全外连接。结果集中除了包括满足连接条件的行外,还包括两个表的所有行。

  1. SELECT <输出列表>
  2. FROM table_source join_type table_source ON search_condition

小试牛刀

1.查询编号为“SM001”的业务员发展客户的情况,显示业务员编号、业务员姓名、客户编号、客户姓名、客户联系方式。

  1. USE DB_CRM
  2. SELECT TB_Salesman.SID,SName,CID,CContact,CPhone
  3. FROM TB_Salesman,TB_Customer
  4. WHERE TB_Salesman.SID=TB_Customer.SID
查询结果
查询结果

2. 查询每个业务员的任务计划,显示业务员编号、姓名、任务的编号以及实施情况。

  1. USE DB_CRM
  2. SELECT TB_Salesman.SID,SName,TID,TPerform
  3. FROM TB_Salesman INNER JOIN TB_Task
  4. ON TB_Salesman.SID=TB_Task.SID
查询结果
查询结果

3.查询部门不同但岗位级别一样的业务员信息,显示业务员编号、姓名、所在部门和岗位级别。 

  1. USE DB_CRM
  2. SELECT S1.SID,S1.SName,S1.SDID,S1.SPostID
  3. FROM TB_Salesman AS S1 JOIN TB_Salesman AS S2
  4. ON S1.SDID!=S2.SDID AND S1.SPostID=S2.SPostID
查询结果
查询结果

 4.查询每个客户对商品的反馈情况,包括没反馈信息的客户情况,显示客户编号、客户联系人、商品编号、反馈时间、反馈内容和解决情况。 

  1. USE DB_CRM
  2. SELECT TB_Customer.CID,CContact,PID,FTime,FContent,FResolve
  3. FROM TB_Customer LEFT JOIN TB_Feedback
  4. ON TB_Customer.CID=TB_Feedback.CID

查询结果

 

小结

注意:连接查询操作可能会耗费非常大的系统资源,因此在使用时应尽可能优化查询语句和表结构,避免出现过多的重复数据和无效数据查询。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/1015375
推荐阅读
相关标签
  

闽ICP备14008679号