搜索
写经验 领红包

sql中连接查询有几种(sql中连接查询的基本语法结构)

导语:SQL中连接查询

连接查询是将两个或两个以上的表按某个条件连接起来,从中选取需要的数据。

1.内连接查询

内连接查询是最常用的连接查询。内连接可以查询两个或两个以上的表。当两个表中存在表示相同意义的字段时,可以通过该字段来连接这两个表;当该字段的值相等时,就查询出该记录。

注:两个表中表示相同意义的字段可以是指父表的主键和子表的外键。

下面我们使用内连接查询,查询employee表和department表。

先查看一下employee表

再查看一下department表

接下来我们使用内连接查询

select num,employee.d_id,name,age,sex,department.d_name,functions from employee,department where employee.d_id=department.d_id;

2.外连接查询

外连接查询可以查询两个或两个以上的表。外连接查询也需要通过指定字段进行连接。当该字段的值相等时,可以查询出该记录。而且,该字段取值不相等的记录也可以查询出来。外连接查询包括左连接和右连接查询。

语法:select 属性列表 from 表名1 left|right join表名2 on 表名1.属性名1=表名2.属性名2.

属性名列表:表示要查询的字段和名称,这些字段可以来自不同的表;

表名1和表名2:表示将这两个表进行外连接;

left:表示进行左连接查询;

right:表示右连接查询;

on:后面接的就是连接条件;

属性名1:表示”表名1”中的一个字段,用”.”表示字段属于哪一个表;

属性名2:表示”表名2”中的一个字段。

(1) 左连接查询

进行左连接查询时,可以查询出”表名1”所指的表中的所有记录。而”表名2”所指的表中,只能查询出匹配的记录。

employee表

department表

下面我们使用左连接查询,查询employee表和department表。

select num,name,employee.d_id,age,sex,d_name,functions from employee left join department on employee.d_id=department.d_id;

(2) 右连接查询

进行右连接查询时,可以查询出”表名2”所指的表中的所有记录,而”表名1”所指的表中,只能查询出匹配的记录。

下面我们使用右查询的方式查询employee表和department表。

select num,name,age,sex,d_name,functions from employee right join department on employee.d_id=department.d_id;

(3) 复合条件连接查询

在连接查询时,也可以增加其他的限制条件。通过多个条件的复合查询,可以是查询结果更加准确。此外,还可以加上group by、order by等关键字。

示例:下面我们使用内连接查询的方式查询employee表和department表。并且employee表年龄字段age>24的人。

select num,name,department.d_id,age,sex,d_name,functions from employee,department where employee.d_id=department.d_id and age>24;

示例:我们继续使用内连接查询employee表和department表,使用order by关键字对age进行升序排序。

select num,name,employee.d_id,sex,age,d_name,functions from employee,department where employee.d_id=department.d_id order by age asc;

注:连接查询中使用最多的是内连接查询。而外连接查询中的左连接和右连接查询使用的频率较低。连接查询时可以加一些限制条件,这样只会对满足限制条件的记录进行连接操作,还可以将连接查询的结果排序。

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小开创作整理编辑!