SQL连接操作

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-02 04:26 点击:

 

利用连接操作,可以根据表与表之间的逻辑联系从两个或多个表中查询数据。

 

早期的SQL版本,实现连接方法是在from子句中给出连接操作的表名,在where子句中

给出连接条件。

 

例如,从学生、课程和成绩表中,产生数据库课程的成绩单。from子句列出连接运算的

 

 

3个表,where子句给出连接条件。在where子句的条件表达式中包含了连接条件和选择

 

 

条件。

      例1 从学生、课程和成绩表中,产生数据库课程的成绩单。SQL语句是:

      select 姓名,课程名,分数

      from学生S,课程C,成绩G

      where S.学号=G.学号AND G.课程号=C.课程号AND C.课程名称='数据库'

    

 

 

·SQL-92提供更丰富的连接操作,包括:内连接、条件连接、自然连接、左外

 

 

连接、右外连接、全连接,同时增加了在from子句定义连接条件的方法。SQL-92中from

 

 

子句连接的语法格式:

      from <表1> <连接类型> <表2> [on (<连接条件>)]

    

 

 

因此,上述产生学生数据库课程成绩单的SQL语句可以写成:

    

 

 

      select 姓名,课程名,分数

      from 学生S join 成绩G on (S.学号=G.学号)

      join课程C on (G.课程号=C.课程号)

      where C.课程名称='数据库'

    

 

 

· 这种方法不仅简化连接条件的表达方法,更重要是提高查询效率。

 

 

   SQL系统处理的逻辑顺序是:

 

 

 

          1、from子句中的连接条件

          2、where子句中的连接条件与选择条件

          3、having子句中的筛选条件

    

 

 

所以,在使用支持SQL-92标准的系统时,建议用from子句定义连接条件。

 

 

      关系R和S进行连接操作,且连接条件为P。若连接的结果中只保含R与S在P上相匹

 

 

配的元组,这种连接属于内连接(inner join)。用from子句表示内连接的方法:

 

 

from R [inner] join S [on (<连接条件>)] 其中,inner可省略。

 

 

 

      自然连接是等值连接的特例。

 

 

 

          ·设关系R和S进行连接操作,其连接条件为P。如果P是R与S中连接属性的

 

 

等值比较,称为等值连接。

          ·若R与S进行等值连接,且R与S的连接属性名相同,称为自然连接。

 

 

 

          ·自然连接的实现方法是在内连接的基础上,用select子句消除重复列。

 

 

 

      有关系R和S,R与S的笛卡儿乘积称为交叉连接。交叉连接的实现方法:在from子

 

 

句中定义交叉连接类型:from R cross join S。

 

 

 

      关系R与S进行连接操作,连接条件为P。若连接操作的结果中除了R与S在P上内连

 

 

接结果之外,还包括左边关系R在内连接操作中不相匹配的元组,而其对应于S的属性赋予

 

 

空值,这种连接称为左外连接。左外连接的表示方法

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1