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

    在敲机房收费系统的过程中,遇到了这样一个问题那就是我需要的数据在两个表中,我就想实现如何同时查询两个表呢  对此问题经过查找和问同学得到了解决


   解决一    也是我自己想的简单的解决方法,那就是把表a中那些需要被令一个表调用的数据,取出来,赋给我自己定义的变量,然后再打开另外一个表我定义的变量赋值给相应的字段 就可以了,这样做虽然简单 ,但是我感觉这不是从根本上解决问题。 于是找到了下面的方法。

 

   解决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:

 

       右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。

 

    C:full outer join:

 

      全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。

   内连接

 

     内连接内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。

 

     内连接分三种:


     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):


    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& "'"  

 

 

另外在学习这个的时候,我还学到了这样一个知识那就是在数据库里面的语句  如何将一个表中的内容插入到另外一个表中   这就涉及到了 插入INSERT  的使用了

 

插入之前,首先要保证两个表中的字段要一致,然后按照

 insert into [目的表](字段1,字段2,字段3……)select字段1,字段2,字段3……) from [源表] where 你滤出数据的条件。   即可

 

 看来SQL 语句  以及数据库 需要学习的东西太多了!  而我仅仅接触了一点点。  

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值