💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
### 9.2、SQL99语法 >[danger]语法格式 内连接select 显示列 from 表名1 别名 inner join 表名2 别名2 on 条件 ...[where ][group by] 左外连接select 显示列 from 表名1 别名 left outer join 表名2 别名 on 条件 left outer join 表名3 别名 on.条件..[where ][group by] 右外连接select 显示列 from 表名1 别名 right outer join 表名2 别名 on 条件right outer join 表名3 别名 on.条件..[where ][group by] 注意: 1,inner和 outer 可以省略不写 2,99语法的内连接获取的数据与92语法完全一样 3,左外连和右外连是相互的作用是当前查询的两张表数据不完全匹配时, 要想左侧表多显示就写左连否则就写右连 l (内连接)显示薪水大于2000的员工信息,并显示所属的部门名称 ``` 采用SQL92语法: select e.ename, e.sal, d.dname from emp e, dept d where e.deptno=d.deptno and e.sal > 2000; 采用SQL99语法: select e.ename, e.sal, d.dname from emp e join dept d on e.deptno=d.deptno where e.sal>2000; 或 select e.ename, e.sal, d.dname from emp e inner join dept d on e.deptno=d.deptno where e.sal>2000; 在实际中一般不加inner关键字 ``` Sql92语法和sql99语法的区别:99语法可以做到表的连接和查询条件分离,特别是多个表进行连接的时候,会比sql92更清晰 l (外连接)显示员工信息,并显示所属的部门名称,如果某一个部门没有员工,那么该部门也必须显示出来 ``` 右连接: select e.ename, e.sal, d.dname from emp e right join dept d on e.deptno=d.deptno; 左连接: select e.ename, e.sal, d.dname from dept d left join emp e on e.deptno=d.deptno; 以上两个查询效果相同 ``` ![](https://img.kancloud.cn/15/b4/15b4464b01b7347e989aad70484984d1_648x357.png) 连接分类: 内链接 * 表1 inner join 表2 on 关联条件 * 做连接查询的时候一定要写上关联条件 * inner 可以省略 外连接 *左外连接 * 表1 left outer join 表2 on 关联条件 * 做连接查询的时候一定要写上关联条件 * outer 可以省略\*右外连接 * 表1 right outer join 表2 on 关联条件 * 做连接查询的时候一定要写上关联条件 * outer 可以省略 *左外连接(左连接)和右外连接(右连接)的区别: *左连接以左面的表为准和右边的表比较,和左表相等的不相等都会显示出来,右表符合条件的显示,不符合条件的不显示 *右连接恰恰相反,以上左连接和右连接也可以加入outer关键字,但一般不建议这种写法, 如: ``` select e.ename, e.sal, d.dname from emp e right outer join dept d on e.deptno=d.deptno; select e.ename, e.sal, d.dname from dept d left outer join emp e on e.deptno=d.deptno; ``` 左连接能完成的功能右连接一定可以完成 ![](https://img.kancloud.cn/19/dd/19dd6c68beec780becaaa65e162b6c43_652x359.png)