java面试题网

普通会员

183

帖子

7

回复

95

积分

楼主
发表于 2019-08-26 15:24:39 | 查看: 5067| 回复: 0

SQL99语法

SQL99语法

(内连接)显示薪水大于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更清晰

(外连接)显示员工信息,并显示所属的部门名称,如果某一个部门没有员工,那么该部门也必须显示出来

右连接:

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;

以上两个查询效果相同

SQL99语法_www.wityx.com

连接分类:

内链接

* 表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;

左连接能完成的功能右连接一定可以完成

SQL99语法_www.wityx.com


文章来自www.wityx.com,转载请注明出处!原文地址http://www.wityx.com/post/1056_1_1.html


java面试题交流群:327440556

您需要登录后才可以回帖 登录 | 立即注册

java面试题网www.wuliaokankan.cnjava建站系统提供技术支持V2.1 网站地图 © 2016-2018