当前位置:
文档之家› oracle事务和数据库对象.ppt
oracle事务和数据库对象.ppt
SQL> DROP SYNONYM emp; SQL> DROP PUBLIC SYNONYM syn_emp;
序列
序列是用于生成唯一、连续序号的对象 序列可以是升序的,也可以是降序的 使用CREATE SEQUENCE语句创建序列
SQL> CREATE SEQUENCE seq_toys START WITH 10 INCREMENT BY 10 MAXVALUE 2000 MINVALUE 10 NOCYCLE CACHE 10;
帐户A的资金减少 然后帐户B的资金相应增加
帐户A
银行转帐
帐户B
事务管理
CR假E定AT张E T三AB的LE帐b户an直k 接转帐1000元到李四的帐户
(
创建帐户表,存放用户的帐户信息
customerName CHAR(10), --顾客姓名
currentMoney MONEY --当前余额
)
GO ALTER TABLE bank
创建视图
CREATE VIEW stud_view AS SELECT studno, studname, subno FROM stud_details;
studno
studname subno
1
Rob
2
2
James
4
3
Jesica
5
stud_view
创建视图 3-2
创建视图的语法:
CREATE [OR REPLACE] [FORCE] VIEW view_name [(alias[, alias]...)]
添加约束:根据银行规定,帐户余额不能 少于1元,否则视为销户
ADD CONSTRAINT CK_currentMoney
CHECK(currentMoney>=1)
GO
张三开户,开户金额为1000元 ;李四开户,开户金额1元
INSERT INTO bank(customerName,currentMoney)
SCOTT.emp 的别名 模式名 表名
公有同义词
CREATE PUBLIC SYNONYM syn_emp FOR SCOTT.emp;
同义词名称
同义词 3-3
创建或替换现有的同义词
CREATE OR REPLACE SYNONYM syn_emp FOR SCOTT.emp;
替换现有的同义词
删除同义词
第四章
事务和数据库对象
回顾
SQL 支持的操作符包括算术、比较、逻辑、集合 和连接操作符 SQL 函数可大致分为:
单行函数:日期、字符、数字、转换、其他 聚合函数 分析函数
事务 使用同义词 使用序列 理解并使用视图 理解并使用索引
目标
事务管理
例如,银行转帐问题: 假定资金从帐户A转到帐户B,至少需要两步:
SQL> ALTER SEQUENCE seq_toys MAXVALUE 5000 CYCLE;
使用DROP SEQUENCE语句删除序列
SQL> DROP SEQUENCE seq_toys;
视图
视图以经过定制的方式显示来自一个或多个表的 数据 视图可以视为“虚拟表”或“存储的查询” 创建视图所依据的表称为“基表” 视图的优点有:
SQL> INSERT INTO toys VALUES ( toys_seq.NEXTVAL, ’Plane’, 75);
指定序列的下一个值
SQL> SELECT seq_toys.CURRVAL FROM dual;
检索序列的当前值
更改和删除序列
使用ALTER SEQUENCE语句修改序列, 不能更改序列的START WITH参数
同义词是现有对象的一个别名。
简化SQL语句 隐藏对象的名称和所有者 提供对对象的公共访问
同义词共有两种类型:
公有同义词可被所有的数据库用户访问。
私有同义词只能在其模式内同访义问词,且不能与当前模式的
对象同名。私有同义词 Nhomakorabea公有同义词
同义词 3-2
私有同义词
CREATE SYNONYM emp FOR SCOTT.emp;
AS select_statement [WITH CHECK OPTION] [WITH READ ONLY];
创建视图 3-3
使用 WITH CHECK OPTION 选项创建视图
CREATE OR REPLACE VIEW v_stu AS SELECT * FROM t_student WHERE f_class = 1 WITH CHECK OPTION CONSTRAINT chk_class1;
COMMIT - 提交并结束事务处理 ROLLBACK - 撤销事务中已完成的工作 SAVEPOINT – 标记事务中可以回滚的点
数据库对象简介
Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库 对象是表 其他数据库对象包括:
数据库对象
同义词
序列
视图
索引
同义词 3-1
指 表 在定示达指第序到定一号列最内个之的大存序间最值中号 的 大 小 后预从 间 值 停先隔 为 止分10为 生配21开0成的10始00下序一号个数值
访问序列
通过序列的伪列来访问序列的值
NEXTVAL 返回序列的下一个值 CURRVAL 返回序列的当前值
SQL> INSERT INTO toys (toyid, toyname, toyprice) VALUES (seq_toys.NEXTVAL, ‘TransFormer’, 500);
提供了另外一种级别的表安全性 隐藏的数据的复杂性 简化的用户的SQL命令 隔离基表结构的改变 通过重命名列,从另一个角度提供数据
创建视图 3-1
studno 1 2 3
studname Rob James Jesica
studmarks 45 33 40
subno 2 4 5
stud_details
VALUES('张三',1000)
INSERT INTO bank(customerName,currentMoney)
VALUES('李四',1)
事务控制
事务是最小的工作单元,作为一个整体进行工作 事务的原子性(Atomicity)、一致性(Consistency)、
隔离性(Isolation)、持久性(Durability)。 保证事务的整体成功或失败,称为事务控制 用于事务控制的语句有: