传智播客——数据库之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
相关文档:
最近做了个项目,实现对存在千万条记录的库表进行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。
1、避免使用Hibernate框架
Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。 ......
首先去http://metalink.oracle.com 下载相关的补丁包,因为是64位for windows的包是p6810189_10204_MSWIN-x86-64.zip,下载地址:
ftp://updates.oracle.com/6810189/p6810189_10204_MSWIN-x86-64.zip
操作如下.
(1) Oracle推荐在升级之前先做一个全库的备份;
(2) 停止所有的Oracle服务
emctl stop dbconsole
isqlplusc ......
1) 用SELECT语句从表中提取查询数据。语法为
SELECT [DISTINCT] {column1,column2,…} from tablename WHERE {conditions} GROUP BY {conditions} ORDER BY {expressions} [ASC/DESC];
说明:SELECT子句用于指定检索数据库的中哪些列,from子句用于指定从哪一个表或视图中检索数据。
2) ......
下面两篇文章全部是转帖~
原地址:http://www.im80hou.com/html/oracle/2009/0722/824.html
理论:
内存与硬盘的速度差异,从内存中读取数据要比从硬盘中读取数据快10000倍
众所周知,从内存中读取数据要比从硬盘中读取数据快10000倍。这主要是内存与硬盘的速度差异所造成的。为此在Oracle数据库中提出一个数据缓存的 ......
数据owner和数据操作者以及代码访问使用不同的用户访问,使用授权的方式进行访问。
数据表创建时使用同义词创建
授权时最好不要使用with grant option
以前不太明白同义词的使用,现在知道了。比较好的应用就是创建表的别名
create public 同义词 tableName for owner.tableName
给视图授权可以使得用户访问不具 ......