程序笔记   发布时间:2022-07-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SQL语法(五) 多表联合查询大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

SQL语法(五) 多表联合查询

程序猴jwang 2018-09-09 09:00:01 109515 收藏 146分类专栏: Database 文章标签: sql语法版权

Database专栏收录该内容19 篇文章9 订阅订阅专栏前言 当需要获取的数据分布在多张中,考虑使用联合查询,本章将学习两种查询方式(sql92/sql99)

范例1.笛卡儿积将多个表的数据进行一一对应,所得到结果为多表的笛卡尔积。结果的数量为所有表的数量的乘积。

--SQL92方式 --表名以逗号隔开实现多表查询--SQL99方式 --使用cross join 关键字

 

2.等值连接筛选&不等值连接筛选(内连接)--概念:先做表的笛卡尔积,然后筛选,筛选条件为等值筛选。--注意:条件为字段的值相同(字段值条件)来进行筛选,字段的名字可以不同

--SQL92方式 --where 筛选条件...--SQL99方式 --使用natural join 表名(自然连接,根据名称相同字段进行等值连接) --使用(inner) join 表名 on 筛选条件... (内连接,根据筛选条件进行等值/不等值连接,inner关键字可以省略不写) --使用(inner) join 表名 using(字段名,字段名,....) (内连接,根据名称相同字段进行等值连接,可指定字段,inner关键字可以省略)

 

 

 

3.自连接

4.外连接(1)左外连接--SQL92方式 --where子句中在右边连接字段后加 (+),显示左边对应字段没有值的数据--SQL99方式 --select 内容 from 表名 left (outer) join 表名 on 连接条件 (外连接,outer可以省略不写)

 

(2)右外连接--SQL92方式 --where子句中在左边连接字段后加 (+),显示右边对应字段没有值的数据--SQL99方式 --select 内容 from 表名 right (outer) join 表名 on 连接条件 (外连接,outer可以省略不写)

 

(3)满外连接--SQL92方式 无--SQL99方式 --select 内容 from 表名 full (outer) join 表名 on 连接条件 (外连接,outer可以省略不写)

 

附录:多表联合查询示例(SQL99)--查询所有数据select * from EMP for update; --笛卡尔积 (1,2,3) (5,6,7)--SQL92,SQL99(推荐)--使用 cross join 关键字select * from emp cross join dept;--15*4=60 --等值连接和不等值连接(内连接)--先做笛卡尔积,然后根据条件进行筛选--注意:条件为字段的值相同来进行筛选,字段的名字可以不同 --等值连接 --自然连接:根据名称相同字段进行等值连接 --使用 natural join关键字 select * from emp natural join dept; --名称字段不相同 -- 表一 inner join 表二 on 筛选条件 select * from emp e inner join dept t on e.deptno = t.deptno; --名称字段相同也可以使用 -- 表一 inner join 表二 using (字段名,字段名...) select * from emp join dept using (deptno);--不等值连接 select * from emp e inner join dept t on e.sal between 1000 and 1500; --自连接 select * from emp a inner join emp b on a.empno = b.mgr; --外连接 --左外连接-- 表一 left (outer) join 表二 on 筛选条件select * from emp e left join dept t on e.deptno = t.deptno; --右外连接-- 表一 right (outer) join 表二 on 筛选条件select * from emp e right join dept t on e.deptno = t.deptno; --满外连接-- 表一 full (outer) join 表二 on 筛选条件select * from emp e full join dept t on e.deptno = t.deptno;附录:操作视频

SQL语法之多表联合查询

————————————————版权声明:本文为CSDN博主「程序猴jwang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_21046965/article/details/82555346

大佬总结

以上是大佬教程为你收集整理的SQL语法(五) 多表联合查询全部内容,希望文章能够帮你解决SQL语法(五) 多表联合查询所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: