PLSQL程序设计(基础篇) 联系客服

发布时间 : 星期二 文章PLSQL程序设计(基础篇)更新完毕开始阅读2777a8e0960590c69ec376b2

第二章 SQL回顾 你都开始对PL/SQL感性趣了,那么SQL肯定是多多少少听说过的,呵呵,就回顾一些基础吧,那些拓展的内容,建议是遇见了再研究吧。 DQL: 源码dql.sql: select dname, max(sal) -- 5 对列筛选(分组字段或聚集函数) from emp left outer join dept -- 1 确定表 using(deptno) where deptno > 0 -- 2 确定行(记录) group by dname -- 3 将行分组 having max(comm) is null or max(comm) > 0 -- 4 对组筛选 order by dname -- 6 对结果集排序 如上的源码表示了SQL语句的执行顺序,这个一定要理解好啊! 思考题: 问题:为什么带有group by的select和having只能含有分组字段和聚集函数呢? 答:因为group by分组后,只能对组进行操作了。也就是说,无论你是筛选行having还是列select,都要以组为单位进行,所以只能使用组共有的属性,除了分组字段外,只有像什么每组的最大值啊、最小值啊、平均值啊等等这些组的特性或叫 组员共有的特性。 所以在使用时一定注意,带有group by后,having和select中只能有-分组字5 段和聚集函数 DML: insert into values就不再重复了,不过听说现在可以一次性向多个表中插入呢,使用insert into all和insert into first,具体用法如下: insert into all/first when 条件 then into 表1 when 条件 then into 表2 when 条件 then into 表3 else into 表4 select from 表源 至于ALL和FIRST的区别就是:如果是ALL,就会插入所有满足条件的表,而如果是FIRST直插入第一个满足条件的表。 TCL: commit; rollback to A; savepoint A; 不多写了,因为我也只知道这点儿了,呵呵,不过听说SQL有个优化hint挺好玩,如:insert /+append+/ into table values XXX;还有对Group by的拓展rollup和cube,还有grouping函数、group set等,以后再研究把,谁让俺是菜鸟呢? 6 第三章PL/SQL的基本结构 本章将从PL/SQL的分类、PL/SQL的基本结构以及第一个PL/SQL程序展开。 PL/SQL的分类: 按照PL/SQL的运行环境,可以分为客户端PL/SQL和服务器端PL/SQL。通常,我们(指开发者)接触到的PL/SQL都是存储在服务器Oracle数据库中的,所以主要学习这一种就可以了,至于客户端的PL/SQL,我也不太了解啊…,o(︶︿︶)o 唉希望大虾在与我联系,加上啊! 按照形式,可分为命名的PL/SQL和匿名的PL/SQL,其中,命名的,又可以分为子程序和触发器,而子程序又可以分为包、函数、过程。是不是有点儿看就是很简单了。 PL/SQL的基本结构如下: Declare 在这里可以定义变量、常量、异常等。 Begin 在这儿可以写一些执行SQL或PL/SQL语句。 Exception 这儿可以捕获并处理异常 怎样在发生异常后让程序继续执行其他语句呢? 7 ?不过不要紧,等你看过整个文章,再回来 答:写在这块儿不就得了,呵呵 End;结束了,别忘了?;?啊,呵呵 你的第一个程序?也是我的,?hello, world!? 有人说hello world太老套了,boring,有什么,在你什么都不懂时还能开发出更高级的么,我们就hello world呵呵。 源码: 说明:源码都是由PL/SQL Developer 8开发,于Oracle10g测试 -- Created on 2010-4-27 by Quasar /* 这就是 你的第一个程序了,也是我的,哈哈 */ declare msg varchar2(15); --定义变量 begin msg := 'Hello World'; --赋值 dbms_output.put_line(msg); --内臵包使用 end; 运行结果: Hello World PL/SQL的注释可以通过这个程序看出来啊,自己看吧,不多说8