传智播客——数据库之ORACLE(三)

本文介绍了数据库事务的概念及其组成,包括事务的启动、提交、回滚等操作,并详细讲解了如何通过子查询来创建表及对表进行增删改等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 数据库的事务处理
定义:事务是一组相关的数据改变的逻辑集合。在一个事务中的数据改变(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 TABLE table
ADD    (column datatype [DEFAULT expr]
   [, column datatype]...);
ALTER TABLE table
MODIFY    (column datatype [DEFAULT expr]
   [, column datatype]...);
ALTER TABLE table
DROP  column  (columns);
学习总结:增删改查容易,DBA难啊

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值