首页 > 数据库 >sql92和SQL99的区别

sql92和SQL99的区别

时间:2022-11-26 23:34:22浏览次数:42  
标签:join 区别 dept SQL99 emp sql92 deptno select

SQL92和SQL99都是用来表示多表的联合查询使用的,两者在开发中,具体使用哪一种都是可以的,但是在书写和阅读的过程中,具体表现在以下:

1、笛卡尔积中的区别

①SQL92中的笛卡尔积:select * from emp,dept

②SQL99中的笛卡尔积:select * from emp cross join dept

2、等值连接方面的区别

①SQL92表示:select * from emp,dept where emp.deptno=dept.deptno

②SQL99表示:select * from emp innner join dept on emp.deptno=dept.deptno

3、不等值连接方面

①SQL92表示:select * from emp ,salgrade where emp.sal<=salgrade.hisal and emp.sal>=salgrade.losal

②SQL99表示:select * from emp inner join dept on emp.deptno=dept.deptno where sal>2000

4、左外连接

①SQL表示:select * from emp ,dept where emp.deptno=dept.depetno(+)

②SQL99表示:select * from emp left outer join dept on emp.deptno=dept.deptno

5、右外连接

①SQL92实现:select * from emp ,depet where emp.deptno = dept.deptno;

②SQL99实现:select * from emp righ outer join dept on emp.deptno=dept.deptno

6、全完连接

①SQL92实现:select * from emp,dept where epm.deptno(+) = dept.dpetno(+)

②SQL99实现:select * from emp full outer join dept on emp.deptno=dept.deptno;

7、自连接

①SQL92实现:select e1.*,e2.ename from emp e1,emp e2 where e1.deptno=e2.deptno

②SQL99实现:select e1.*,e2.ename from emp e1 inner join emp e2 on e1.deptno=e2.deptno

8、在三表连接查询中

①SQL92实现:

select e.*,d.dname,c.cname
from emp e,dept d,city c
where (e.deptno=d.deptno and d.loc=c.cid and sal>2000) or (e.deptno=d.deptno and d.loc=c.cid and comm is not null)
order by e.sal
②SQL99实现:

select * from emp e
inner join dept d
on e.deptno = d.deptno
inner join city c
on d.loc =c.cid
where e.sal>2000 or e.comm is not null
order by e.sal
此外,SQL99中在内连接中还可以使用关键字:using

select * from emp inner join dept using(deptno)
————————————————
版权声明:本文为CSDN博主「道法—自然」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wyqwilliam/article/details/103076797

标签:join,区别,dept,SQL99,emp,sql92,deptno,select
From: https://www.cnblogs.com/chinasoft/p/16928638.html

相关文章

  • 图文并茂解释开源许可证 GPL、BSD、MIT、Mozilla、Apache和LGPL的区别?
      BSD开源协议BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发......
  • java中 mkdirs与mkdir区别
    原文链接:https://www.jianshu.com/p/cd8bc8d92ea6mkdirs()可以建立多级文件夹,mkdir()只会建立一级的文件夹,如下:newFile("/tmp/one/two/three").mkdirs();执行后,会......
  • 【浅谈Java】this和super的用法与区别
    在Java的学习与开发者我们经常遇到this和super关键字,那么它们的用法和区别是什么呢?一、this关键字1.this是什么?this是自身的一个对象,代表对象本身,可以理解为:指向对象本......
  • WGCLOUD搭建笔记 - 指令下发和自定义监测项有什么区别
    ​​​WGCLOUD​​监控系统有两个功能模块:指令下发和自定义监测项话说,WGCLOUD确实一款非常优秀的运维软件,轻量且性能好言归正传,那么它们两个有什么区别呢1、指令下发指令下......
  • Java Web中requset,session,application 的作用域及区别
    三者概述requset概述:request是表示一个请求,只要发出一个请求就会创建一个request用处:常用于服务器间同一请求不同页面之间的参数传递,常应用于表单的控件值传递。sessio......
  • 标准盒子与IE盒子的区别
    盒子模型是css中一个重要的概念,理解了盒子模型才能更好的排版。其实盒子模型有两种,分别是ie盒子模型和标准w3c盒子模型。他们对盒子模型的解释各不相同,先来看看我们熟知......
  • C#中List与IList的区别
    List与IList的区别2009-11-1514:19List<T>类:表示可通过索引访问的对象的强类型列表,提供用于对列表进行搜索、排序和操作的方法。IList<T>接口:表示可按照索引单......
  • WPF中的事件及冒泡事件和隧道事件(预览事件)的区别
    WPF的采取了路由事件机制,这样事件可以在可视树上层级传递。要知道XAML中控件都是由很多其他元素组合而成,比如我们单击了Button内部的TextBlock元素,Button依然可以可......
  • DOS批处理中%cd%和%~dp0的区别
    %cd%和%~dp0的区别 在DOS的批处理中,有时候需要知道当前的路径。%cd%,一个是%~dp0。   这两个变量的用法和代表的内容是不同的。  %cd% ......
  • 工业物联网DCS和SCADA的区别
    如果你在工业自动化的企业环境中操作,可能听说过分布式控制系统(DCS)和监控和数据采集(SCADA)系统。DCS系统和SCADA系统有很多共同点,因为它们都被称为受控计算机系统,接......