05-2 SQL语言数据查询_连接查询

目录

2.连接查询

2.1 where-from连接查询

2.2 jion-on连接查询

 2.3 jion-using连接查询

2.4多表连接


 紧接05-1节单表查询,本节将继续介绍连接查询相关内容。


2.连接查询

所谓连接,就是实现从多个表中查询数据,由于查询语言的表达非常灵活,没有特定的表达方式实现目标搜索,本文将介绍四种不同的连接查询方式。

2.1 where-from连接查询

表之间满足一定条件的元组进行连接,此时from子句中指明进行连接的表名,where子句中指明连接的列名和连接的条件。

话不多说,直接上例子,

例子1,找出instructor表和department表中dept_name相同的元组,输出它们的name、instructor、dept_name、building属性。

例子1等价于如下表达(采用as命名了列别名,简化表达)

 

2.2 jion-on连接查询

当将JOIN关键字放于FROM子句中时,应有关键字ON与之相对应,以表明连接的条件

SELECT {*|<表达式>,…,<表达式>}

FROM <表名> JOIN<表名> ON <条件表达式>

和where-from语句一般可以互相转换:

 

 2.3 jion-using连接查询

select * from takes right outer join student using (ID);

等同于select *from takes natural right outer join student;

2.4多表连接

假设:

instructor(ID, name, dept_name, salary)

teaches(ID, course_id, sec_id, semester, year)

course(course_id, title, dept_name, credits)

考虑查询:列出教师的名字以及他们所讲授课程的名称

select name, title

from instructor natural join teaches natural join course;

或select name, title

from (instructor natural join teaches) join course using (course_id);

内连接和外连接

        SQL把常规连接称作内连接,用inner join表示。

        关键词inner是可选的,当join子句中没有使用outer前缀时,默认的连接类型是inner join。

select * from student join takes using (ID);

等价于:

select * from student inner join takes using (ID);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值