Oracle中的一些查询语句及其执行顺序

查询条件:

1)LIKE:模糊查询,需要借助两个通配符,%:表示0到多个字符;_:标识单个字符。

2)IN(list):用来取出符合列表范围中的数据。

3)NOT IN(list): 取出不符合此列表中的数据记录。

4)BETWEEN…AND…:用来查询符合某个值域范围条件的数据,最常见的是使用在数字类型的数据范围上,但对字符类型和日期类型数据也同样适用。for example:    SELECT ename, sal FROM emp WHERE sal BETWEEN 1500 AND 3000;

5)IS NULL:空值NULL是一个特殊的值,比较的时候不能使用”=”号,必须使用IS NULL,否则不能得到正确的结果。

6)IS NOT NULL:与5相反。

7) >ANY : 大于最小   <ANY:小于最大   >ALL:大于最大   <ALL:小于最小

for example:      SELECT empno, ename, job, sal, deptno FROM emp WHERE sal > ANY (345,3333,123)

8)DISTINCT:过滤重复。for example:  SELECT DISTINCT deptno FROM emp

9)ORDER BY:对查询出的数据按一定规则进行排序操作,ASC指定升序,DESC指定降序。

10)GROUP BY:把得到的数据按照给定的字段进行分组,例如:把整个数据表按部门划分成一个个小组。

11)HAVING:HAVING子句用来对分组后的结果进一步限制,比如按部门分组后,得到每个部门的最高薪水,可以继续限制输出结果。必须跟在GROUP BY后面,不能单独存在。例如: SELECT deptno, MAX(sal) max_sal FROM emp GROUP BY deptno HAVING MAX(sal) >4000;

查询语句的执行顺序:

1、FROM 子句:执行顺序为从后往前、从右到左。数据量较少的表尽量放在后面。

2、WHERE子句:执行顺序为自下而上、从右到左。将能过滤掉最大数量记录的条件写在WHERE 子句的最右。

3、GROUP BY:执行顺序从左往右分组,最好在GROUP BY前使用WHERE将不需要的记录在GROUP BY之前过滤掉。

4、HAVING 子句:消耗资源。尽量避免使用,HAVING 会在检索出所有记录之后才对结果集进行过滤,需要排序等操作。

5、SELECT子句:少用*号,尽量取字段名称。ORACLE 在解析的过程中, 通过查询数据字典将*号依次转换成所有的列名, 消耗时间。

6、ORDER BY子句:执行顺序为从左到右排序,消耗资源。

时间: 2024-08-02 11:04:49

Oracle中的一些查询语句及其执行顺序的相关文章

浅谈SQL优化入门:1、SQL查询语句的执行顺序

1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (6) HAVING <having_

MySQL的逻辑查询语句的执行顺序

阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition>

mysql查询语句的执行顺序(重点)

一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <o

Oracle查询语句的执行顺序

通过讨论Oracle 中sql语句的执行顺序,判断哪里可以使用定义过的别名

查询语句的执行顺序: select ename as name from scott.emp emp where emp.job=' CLERK' order by name 1.先执行from 确定数据来自哪里 2.再执行where 条件 判断符合条件的数据,可以使用表scoot.emp 的别名emp 3.执行select 查询 查询数据 4.最后执行 order by 对查出来的数据排序,所以order by后可以使用字段eame的别名name 原文地址:http://blog.51cto.

检查Oracle 中死事务的语句

SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2 KTUXESTA Status, KTUXECFL Flags ,KTUXESIZ 3 FROM x$ktuxe 4 WHERE ktuxesta!='INACTIVE'; KTUXEUSN KTUXESLT KTUXESQN STATUS FLAGS KTUXESIZ ---------- ---------- ---------- ----------------

7.PL_SQL——在PL_SQL程序中内嵌查询语句、DML语句和事物处理语句

在PL/SQL中可以使用的SQL语句主要有以下几类: SELECT 查询语句,DML语句,Transaction 事物处理语句,本文将对这几类语句在PL/SQL中的用法逐一介绍. 一.查询语句-SELECT SELECT 语句用来查询一条或多条语句.虽然SELECT 语句也属于DML语句,但SELECT是只读的,所以单独列出. 在PL/SQL中使用SELECT 语句的格式如下:   SELECT select_list INTO {variable_name[,variable_name]...

oracle物理体系相关查询语句

1.查看SGA和PGA 这里看到SGA和PGA大小为0是因为在oracle 11g中,推出了memory_target这个参数,memory_target参数指定的内存会自动分配内存给SGA与PGA: 查看memory_target: sga_max_size=3200M表示当数据库运行是的内存超过sga_target的大小时,操作系统OS能够分配再分配内存给SGA,但大小不能超过3200M: 2.查看共享池与数据缓冲区 共享池与数据缓冲区大小为0是因为oracle设置为SGA自动管理,共享池与

Oracle EBS中有关Form的触发器的执行顺序

http://blog.csdn.net/postfxj/article/details/8135769 触发器执行顺序: 1.  当打开FORM时: (1)       PRE-FORM (2)       PRE-BLOCK(BLOCK级) (3)       WHEN-NEW-FORM-INSTANCE (4)       WHEN-NEW-BLOCK-INSTANCE (5)       WHEN-NEW-RECORD-INSTANCE (6)       WHEN-NEW-ITEM-I