PL/SQL基础学习

                                                    PL/SQL基础学习

PL/SQL(Procedure Language/SQL)是一种程序语言,是Oracle数据库对SQL语句的过程化扩展,目前只有Oracle数据库支持。

(一)PL/SQL基础语法

PL/SQL程序结构:

1、PL/SQL基本变量类型:char、varchar2、date、number、boolean、long

2、引用型变量和记录型变量

引用型变量:

记录型变量:

3、if语句

4、循环语句

                 


(二)PL/SQL光标

光标就是一个结果集。举例如下:

1、光标属性与光标数的限制

光标属性:

光标数限制:默认情况下,oracle只允许在同一个会话中,打开300个光标

2、带参数的光标


(三)例外

例外分为系统例外和自定义例外。

1、系统例外

系统例外

No_data_found

没有找到数据

Too_many_rows

select...into...语句匹配多行

Zero_Divide

被零除

Value_error

算术或转换错误

Timeout_on_resource

等待资源时发生超时

2、自定义例外


(四)存储过程与存储函数

存储过程和存储函数是一组用于完成特定数据库功能的SQL语句集,该SQL语句集经过编译后存储在数据库系统中。在使用时候,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个或一系列的数据库操作。

不同点:存储函数有返回值(return),而存储过程没有

1、无参存储过程

2、带参数存储过程

3、带参数存储函数

4、out参数

存储过程和存储函数都可以有一个或多个out参数,因此存储过程可通过out参数实现返回值。

原则:如果只有一个返回值,则使用存储函数,否则就用存储过程(无返回或返回多个时)。

5、web应用访问存储过程

举例1(访问上述例子):

举例2:


(五)oracle触发器

1、触发器类型

语句级触发器(没有for each row,针对的是表):在指定的操作语句操作之前或之后执行一次,不管该语句影响了多少行。

行级触发器(有for each row,针对的是行):触发语句作用的每一条记录都被触发,使用:old:new伪记录变量来识别值的状态。

2、触发器语法

举例:


(六)oracle高级查询(归纳)

1、group by使用

group by 是和聚合函数配合使用,它有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面;包含group by 子句中的列不必包含在select列表中。

如:select A,B,count(C) from table group by A ,B

2、having设置分组条件

having作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。

如:select A count(B) from table group by A having count(B)>2

3、笛卡尔集

笛卡尔集的列数为每个表的列数之和,笛卡尔集的行数为每个表的行数相乘。实际中,应避免使用笛卡尔全集

等值连接:select e.empno, e.ename, e.sal, d.dname from emp e, dept d where e.depno=d.depno

 

 

 

猜你喜欢

转载自blog.csdn.net/hjy132/article/details/81462756
今日推荐