PL/SQL中SELECT总结
一、SELECT 语句的各个关键词的顺序及作用简解(这个我简略点写~) 1.SELECT 2.FROM 3.WHERE 4.GROUP BY ---对结果集进行分组,通
一、SELECT 语句的各个关键词的顺序及作用简解(这个我简略点写~)
1.SELECT
2.FROM
3.WHERE
4.GROUP BY ---对结果集进行分组,通常与聚合函数一起使用
5.HAVING
6.ORDER BY
举个例子如下:
group by item_name having count(item_name)>1 order by count(item_name);
注意这个顺序。
二、SELECT语句基本执行过程详解:
当执行SELECT语句时,DBMS的执行步骤可以表示如下:
step1:首先执行FROM子句,组装来自不同数据源的数据,及根据FROM子句中的一个或多个表创建工作表。如果在FROM子句中有两个或多个表,DBMS将执行 CROSS JOIN运算对表进行交叉连接,作为工作表。
step2:若果有WHERE子句,实现基于制定的条件对记录进行筛选,即DBMS将WHERE子句列出的搜索条件作用于step1中生成的工作表。DBMS将保留哪些满座搜索条件的行,删除那些不满足条件的行。
step3:若果有GROUP BY子句,它讲把数据划分为多个分组。DBMS将step2生成的结果表中的行分成多个组,每个组中有行的group_by_expression字段具有相同的值。接着,DBMS将每组减少到单行,而后将其添加到新的结果表中,用以代替step1的工作表。
step4:如果有HAVING子句,他将筛选分组。DBMS将HAVING子句列出的搜索条件作用于step3生成的“组合”表中的每一行。DBMS将保留哪些满足搜索条件的行,删除那些不满足条件的行。
step5:将SELECT子句作用于结果表,删除表中不包含再select_list中的列。如果SELECT子句包含DISTINCT关键词,DBMS将从结果中删除重复的行。
step6:如果有ORDER BY子句,则按指定的排序规则对结果进行排序。
step7:对于交互式的SELECT语句,在屏幕上出现结果;对于嵌入式的SQL,使用游标将结果传递给宿主程序。
以上就是SELECT语句的基本执行过程。理解它对于提高SQL查询的效率将有帮助。
3、PL/SQL中的rownum在查询中用法举例
主要是最近项目遇到,很实用的一些功能,给大家分享:
有表如下:
(1)查询表中价格最大的药品记录
select distinct * from LAB_ITEM_DICT t where price in (select max(price) from lab_item_dict);
(2)查询表中的前5行记录
select * from lab_item_dict where rownum5
推荐阅读
-
Oracle中PL/SQL中if语句的写法介绍
-
sql server中Select count(*)和Count(1)的区别和执行方式
-
SQL Server数据库中批量导入数据的四种方法总结
-
mybatis中SQL语句运用总结
-
JSP中操作数据库的常用SQL标签用法总结
-
Mybaits 源码解析 (六)----- 全网最详细:Select 语句的执行过程分析(上篇)(Mapper方法是如何调用到XML中的SQL的?)
-
Oracle中在pl/sql developer修改表的2种方法
-
SQL Server中的SELECT会阻塞SELECT吗
-
PL/SQL 中Returning Into的用法
-
tp5中使用原生sql查询总结【转】