传智播客——数据库之ORACLE(三)
一 数据库的事务处理
定义:事务是一组相关的数据改变的逻辑集合。在一个事务中的数据改变(DML)保持着一致的状态,数据的改变同时成功或者同时失败。
二 数据库的事务由下列语句组成
一组DML语句,修改的数据在他们中保持一致
一个 DDL (Data Define Language) 语句
一个 DCL (Data Control Language)语句
1、开始于第一个执行的语句
2、结束于:
用户执行COMMIT 或 ROLLBACK
单个的DDL or DCL 语句
用户连接异常错误,或者用户断开连接
系统崩溃
COMMIT和 ROLLBACK可以显示的控制事务。
好处:
1、保证数据一致性,修改过的数据在没有提交之前
是不能被其他用户看到的。
2、在数据永久性生效前重新查看修改的数据
3、将相关操作组织在一起,一个事务中相关的数
据改变或者都成功,或者都失败。
1、当下列情况发生时事务自动隐式提交:
执行一个 DDL 语句
执行一个DCL 语句
从 SQL*Plus正常退出(EXIT 或者 QUIt)
2、当从SQL*PLUS中强行退出或连接异常中断时,事务自动回滚
以前的数据可恢复
当前的用户可以看到DML操作的结果
其他用户不能看到DML操作的结果
被操作的数据被锁住,其他用户不能修改这些数据
数据的修改被永久写在数据库中.
数据以前的状态永久性丢失.
所有的用户都能看到操作后的结果.
记录锁被释放,其他用户可操作这些记录.
所有的 savepoint被去掉.
三 使用子查询创建表
使用子查询创建表的语法
CREATE TABLE table
[column(, column...)]
AS subquery;
新表的字段列表必须与子查询中的字段列表匹配
字段列表可以省略
--带数据的
create table departments02
as select * from departments
--不带数据的
create table departments03
as select * from departments where 1>2
--不省略字段列表
create table departments04 (
"部门编号",
"部门名称",
"管理者编号“ )
as select department_id,department_name,manager_id from departments
----不省略字段列表
create table departments05
as select department_id "部门编号", department_name "部门名称" from departments
ALTER TABLE 语句使用ALTER TABLE 语句可以:
增加字段
修改字段
删除字段
ALTER TABL
相关文档:
子程序 命名的pl/sql块
create procedure 过程名 [参数1 in|out|in out…]
局部变量声明
执行语句
in
out
in out
过程名(参数里表); create or replace
procedure add123 as
i integer;
j integer;
begin
i:=1;
j:=2;
dbms_output.put_l ......
【实现步骤】
1. 创建表blog_info, 具有ID和title两个字段, 其中ID将设置为自动增长列;
2. 创建序列:
create sequence sq_blog_info
start with 1
increment by 1
nomaxvalue
nocycle
......
数据库触发器
触发器语句
制定触发器定时、事件、表名及类型
触发器主体
是pl/sql快或对过程的调用
触发器限制
可以通过when子句实现
DML(insert update delete)
DDL(create alter drop)
数据库操作(servererror logo ......
Linux下启动oracle10g的em和isqlplus的方法:
注:$ORACLE_HOME为oracle的安装路径
1,使用EM(enterprise managment)
1.1启动EM
$ORACLE_HOME/bin/emctl start dbconsole
如果出现下面相关信息,说明服务启动
Z set to PRC
Oracle Enterprise Manager 10g Database Control Release 10.1.0.3.0
Copyright (c) 1996, 200 ......
下面两篇文章全部是转帖~
原地址:http://www.im80hou.com/html/oracle/2009/0722/824.html
理论:
内存与硬盘的速度差异,从内存中读取数据要比从硬盘中读取数据快10000倍
众所周知,从内存中读取数据要比从硬盘中读取数据快10000倍。这主要是内存与硬盘的速度差异所造成的。为此在Oracle数据库中提出一个数据缓存的 ......