当前位置:数据库 > SQLServer >>

数据库基础学习--SQL语句的连接方式


数据库基础学习--SQL语句的连接方式
 
在敲机房收费系统的过程中,遇到了这样一个问题那就是我需要的数据在两个表中,我就想实现如何同时查询两个表呢  对此问题经过查找和问同学得到了解决
 
   解决一  :  也是我自己想的简单的解决方法,那就是把表a中那些需要被令一个表调用的数据,取出来,赋给我自己定义的变量,然后再打开另外一个表B 我定义的变量赋值给相应的字段 就可以了,这样做虽然简单 ,但是我感觉这不是从根本上解决问题。 于是找到了下面的方法。  www.zzzyk.com  
 
   解决2:   这就涉及到了SQL 语句的连接问题   sql语句的连接分为以下几类  :
 
   外连接
    A、left outer join:
 
       左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。
 
       SQL: select a.a,a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
 
    B:right outer join:  www.zzzyk.com  
 
       右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。
 
    C:full outer join:
 
      全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。
   内连接
 
     内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。
   www.zzzyk.com  
     内连接分三种:
 
     1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
使用等值连接,,在选择列表中列出LandTbl和TownTbl表中重复列(TownCode):
 
     例:Select * fromLandTbl as A inner join TownTbl as B on A.TownCode=B.TownCode
 
     2、不等连接:在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。
这些运算符包括>、>=、<=、<、!>、!<和<>。
 
    例:Select * fromLandTbl as A inner join TownTbl as B on A.TownCode<>B.TownCode
 
    3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
使用自然连接,在选择列表中删除LandTbl和TownTbl表中重复列(TownCode):
  www.zzzyk.com  
    Select A.*,B.CityCode, B.TownName from LandTbl as A inner join TownTbl as B onA.TownCode=B.TownCode
 
    内连接也称为等同连接,返回的结果集是两个表中所有相匹配的数据,而舍弃不匹配的数据。也就是说,在这种查询中,DBMS只返回来自源表中的相关的行,即查询的结果表包含的两源表行,必须满足ON子句中的搜索条件。作为对照,如果在源表中的行在另一表中没有对应(相关)的行,则该行就被过滤掉,不会包括在结果表中。内连接使用比较运算符来完成
 
   我在查询的过程中使用了内连接  ,这样就可以同时查询两个表中的内容了。
 
select* from line_Info inner join student_Info on line_info.cardno=student_Info.cardno where line_Info.cardno='" & txtCardNo.Text& "'"  
  www.zzzyk.com  
另外在学习这个的时候,我还学到了这样一个知识那就是在数据库里面的语句  如何将一个表中的内容插入到另外一个表中   这就涉及到了 插入INSERT  的使用了
 
插入之前,首先要保证两个表中的字段要一致,然后按照
 insert into [目的表](字段1,字段2,字段3……)select字段1,字段2,字段3……) from [源表] where 你滤出数据的条件。   即可
 
 看来SQL 语句  以及数据库 需要学习的东西太多了!  而我仅仅接触了一点点。
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,