Pl/SQL结构块分为几部分?Pl/sql中使用DML,事务处理

PL/SQL专门面向Oracle数据库存储的程序单元的开发,因此在讲PL/SQL之前我们先来了解以下的一些相关概念。
实例(instance) 数据库(database) 数据库服务器(database sever)
1. 实例是指一组Oracle后台进程以及在服务器中分配的共享的物理文件集合
2. 数据库是由基于磁盘的数据文件,控制文件,日志文件,参数文件和归档日志文件等组成的物理文件集合
3. 数据库服务器是指管理数据库的各种软件工具(sqlplus,pl/sql),实例及数据库的三个部分
注:数据库的主要功能就是存储数据,数据库存储数据的方式通常为存储结构,分为物理存储结构(主要有数据文件,控制文件,重做日志文件,口令文件,警告日志文件,参数文件和归档日志文件等)和逻辑村存储结构(表空间,段,区间和数据块等概念组成.
现在我们开始来学习PL/SQL
一.PL/SQl块结构
PL/SQL程序都是以块(block)为基本单位,整个PL/SQL分为3个部分
声明[可选],执行[必须],异常[可选]
[declare]
Begin
[exception]
End
二.PL/SQL中使用DML
1.使用select into赋值
Select 列名 into 变量名 from 表名

举例:算7369的年薪
declare
V_saly scott.emp.sal%type;
V_name  scott.emp.ename%type;
begin 
  select sal, ename into V_saly,V_name from scott.emp where empno=7369;
  dbms_output.put_line(V_name||'的年薪是:'||(V_saly*12));
  end;
  注:
  %type  与数据表中的某个列的数据类型相同;
  %rowtype 返回一个记录类型,与数据库表的数据结构一致

2.使用insert插入数据
insert into表名[(列名)] values(对应值) [where 条件]


--创建表goods,goodid,goodname,goodPrice
create table goods(
goodid number,goodname nvarchar2(10),goodPrice number);
select * from goods;
--添加5条记录
insert into goods values(1,'衣服',300);
insert into goods values(2,'鞋子',200);
insert into goods values(3,'裤子',300);
insert into goods values(4,'眼镜',1300);
insert into goods values(5,'配饰',100);

3.使用update 更新数据
update 表名 set 列名=新值 [where 条件];


4.使用delete 删除数据
delete [from] 表名 [where 条件];

--删除其中一条记录
delete goods where goodid=1;

三.PL/SQL中事务处理
事物处理的概念:事务处理是工作的逻辑单元,一个事务由一个或者多个完成一组的一组相关行为的SQL语句,通过事务机制确保这一组SQL所执行的操作要么完全成功的执行(执行的每一步都成功无错误,则整个事务被提交),要么一点也不执行(有错误时回滚)。
事务包含4种重要的特性:ACID
1. 原子性(ATomicity)
2. 一致性(consistency)
3.隔离性(isolation)
4.持久性(durability)
在oracle中事务是隐式自动开始的,一般来说在以下几个方面:
A. 执行commit提交事务
B. 执行rollback撤销事务
C. 执行一条数据定义语句(ex:create,drop,alter)
D. 执行一个数据控制命令(grant。revoke)
E. 正常的断开数据库连接,正常退出SQL*Plus环境
Commit [work]
Rollback[work][to savepoint name]
Savepoint name

猜你喜欢

转载自blog.csdn.net/weixin_36027342/article/details/79713516