SQL执行顺序.docx

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL执行顺序

oracle查询语句中select from where group by having order by的解释与应用?查询中用到的关键词主要包含六个,并且他们的顺序依次为select--from--where--group by--having--order by其中select和from是必须的,其他关键词是可选的,这六个关键词的执行顺序与sql语句的书写顺序并不是一样的,而是按照下面的顺序来执行from--where--group by--having--select--order by,from:需要从哪个数据表检索数据where:过滤表中数据的条件group by:如何将上面过滤出的数据分组having:对上面已经分组的数据进行过滤的条件select:查看结果集中的哪个列,或列的计算结果order by :按照什么样的顺序来查看返回的数据?select关键字1、用*代替所有列select * from emp;2、指定需要返回的列select ename,deptno ,job from emp;3、为列取别名select ename emloyee_name,job ,deptno from emp;4、去除某列中的相同数据select distinct deptno ,job from emp;5、返回两个列进行运算后的数据create table tab1(first_col number(3),second_col number(3));insert into tab1 values(3,6);insert into tab1 values(1,10);select first_col,second_col,first_col+second_col from tab1;返回结果如下?FIRST_COL SECOND_COL FIRST_COL+SECOND_COL---------- ---------- --------------------?3 ? ? ? 6 ? ? ? ? ? 9?1 ? ? ? 10 ? ? ? ? ? 11?6、对单列进行运算后返回?select first_col,second_col,first_col*10 from tab1;结果如下?FIRST_COL SECOND_COL FIRST_COL*10---------- ---------- ------------? ? ? ? ?3 ? ? ? ? ?6 ? ? ? ? ? 30? ? ? ? ?1 ? ? ? ? 10 ? ? ? ? ? 10?7、select 1+2 ?from dept;返回结果如下?? ? ? 1+2---------? ? ? ? 3? ? ? ? 3? ? ? ? 3? ? ? ? 3这样的查询似乎看起来没有什么意义,出现四行是因为有四个部门,对每个部门都要执行一次1+2并且返回。假设建立一个表只有一条数据那么将只会返回一条数据,在oracle内部就存在这样一个表dual,以前我们经常会看到这样的语句select sysdate from dual;SYSDATE--------------05-8月 -12即返回系统日期假如执行这样的语句,利用上面建立的表tab1select sysdate from tab1;看看结果会是什么SYSDATE-----------05-8月 -1205-8月 -12返回了两个日期,因为表tab1中有两条数据,这也可以说明返回的数据只是一个常量,并不是从dual表中取得的,只是利用了dual表中有一条数据的特点,这个表完全可以自己建立,也会取得和dual一样的效果?where关键字一个简单的查询条件一般包含一个比较运算符( ?= ? ?+ ? = ? )由比较运算符组成的语句能够判断为true和false,当为true时,则说明该行符合条件,作为用户检索的数据返回给用户,例如select * from emp where sal4000;?order by关键字如果想要检索返回的数据按照一定的顺序排列,就需要使用order by关键词,select * from emp order by ename desc nulls last;select * from emp order by ename asc nulls first;其中asc是指按照指定的列按照升序排列,desc按降序排列,nulls first指将为空的行显示在最前面,nulls last是指将为空的数据所在行显示在最后,对于升序排列nulls last为默认,如果按照降序排列nulls first 为默认例如select ?* from emp order ?by comm ;等价于se

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档