• 让天下没有难学的技术
    多数学员都来自推荐,这就是口碑的力量

Java编程学习连接查询之外连接

java培训学习

(1) 外连接

  1. SQL1992语法(MySql不支持)
  • 左外连接
  • 右外连接
  • 全外连接
  1. SQL1999语法
  • 左外连接:LEFT [OUTER] JOIN ON
  • 右外连接:RIGHT [OUTER] JOIN ON
  • 全外连接: FULL [OUTER] JOIN ON , (MySql不支持)

(2) 自然连接(不常用)

大家也都知道,连接查询会产生无用笛卡尔积,我们通常使用主外键关系等式来去除它。而自然连接无需你去给出主外键等式,它会自动找到这一等式:

  • 两张连接的表中名称和类型完成一致的列作为条件,例如emp和dept表都存在deptno列,并且类型一致,所以会被自然连接找到!如果两个表中有一对字段名称相同,字段类型不同,会报错。
  • 当两个表中有多对名称和类型完全一致的字段,自然连接会自动把这多对字段都会当做等值条件。
  • 自然连接的代码

SELECT * FROM emp NATURAL JOIN dept;

SELECT * FROM emp NATURAL LEFT JOIN dept;

SELECT * FROM emp NATURAL RIGHT JOIN dept;

(3) JOIN连接查询小结

案例:

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

 

①简单的两表连接案例:查询员工名和部门名②添加筛选条件案例1:查询部门编号20的部门信息和员工信息案例2: 查询有奖金的员工名、部门名③添加分组+筛选案例:查询部门中员工个数>4的部门名称④添加分组+筛选+排序案例:查询部门中员工个数>4的部门名,并按部门名降序⑤三表连接案例:查询员工名、部门名、工资级别⑹外连接+分组+筛选案例: 查询哪个部门没有员工

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训课程视频供广大学员下载学习。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注