第七章 连接查询

95 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


前言


提示:以下是本篇文章正文内容,下面案例可供参考

1.内连接

关键字:inner join 定义: 内连接也成为自然连接,它是根据两个表或者多个表中的列的关系,从这些表中查询数据。 语法:

SELECT 字段名称 FROM 表名1 JOIN 表名2 ON 表名1.字段名1=表名2.字段名2

注意:内连接,只查匹配行

2.外连接(左外连接、右外连接、全外连接)

分别对应的关键字:left、right、full [outer] join(outer关键字可以被省略) 什么是左连接? 以左表为基准,结果集保留左边的所有的行,而右边的表只包含与左边的表匹配的行 什么是右链接? 与左表刚好相反 语法:

SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL [OUTER] JOIN 表名2 ON 表名1.字段名1=表名2.字段名2

3.交叉连接

关键字:cross join 定义:两个表数据里面的组合所有可能性 语法:

SELECT    fieldlist   FROM    table1 CROSS   JOIN   table2
<WHERE 条件表达式>    
---fieldlist==》字段名称    
--table==》表名

4.简单多表查询

定义: 语法:

SELECT fieldlist  FROM  table1,table2
<where table1.column=table2.column>

习题

--使用内连接查询员工“李媛媛”的所有的职级信息和员工信息
  select rank.RankID 员工职级编号,RankName 员工职级名称,ID 员工编号,name 员工姓名,birthday 出生日期,employee.RankID 员工职级编号,salary 工资,
   address 地区,guoji 国籍 from Rank inner join Employee on Rank.RankID=Employee.RankID where name='李媛媛'
---使用内连接查询员工“孟三德”所有员工信息,只显示员工姓名、员工职级编号和员工职级名称
  select Name 员工姓名,rank.RankID 员工职级编号,RankName 员工职级名称 from Rank inner join Employee on Rank.RankID=Employee.rankID where name='孟三德'
---使用交叉连接查询“孟三德”的所有信息
  select *  from Rank cross join Employee where name='孟三德'
---使用多表查询歌曲表及歌手表及歌曲类型表所有信息
  use [Super KTV]
  select * from song,singer,type
---使用多表查询“孟三德”的信息,只显示员工姓名、员工住址、员工工资及员工国籍
  use [huawei]
  select name 员工姓名,address 员工住址,salary 员工工资,guoji 员工国籍 from rank,employee where rank.RankID=employee.RankID and name='孟三德'