oracle处理数据

oracle处理数据

一  数据库控制语言

DML(Data Manipulation Language – 数据操作语言) 可以在下列条件下执行:

•    向表中插入数据

•    修改现存数据

•    删除现存数据

事务是由完成若干项工作的DML语句组成的

二  数据处理

1.插入数据

在插入数据之前先对表进行备份,以免改变原始的表。

    SQL> create table emps as select * from emp;

    插入表的语法:

       SQL> --insert 语句 inot 表名(column,column...)

    插入表的语句:

       SQL>insert into emps values

(7935,'laowang','TEACHER',null,to_date('1998-9-10','yyyy-mm-dd'),1000,1000,40);

commit;//提交

注:

记得再插入之后要commit

使用这种语法一次只能向表中插入一条数据

为每一列添加一个新值。

按列的默认顺序列出各个列的值。

在 INSERT 子句中随意列出列名和他们的值。

字符和日期型数据应包含在单引号中

    2.插入指定的值

       Insert into emp(ename,sal) values(‘老王’,4000);

3.从其他表中拷贝数据

SQL> insert into emps(emno) select *  from emp  where empno=7369;

    注:

       不必书写 VALUES 子句。

子查询中的值列表应于 INSERT 子句中的列名对应

4.创建脚本,提示输出指定的字段

        SQL> insert into emps

(empno,ename,hiredate) values(&empno,'&ename','&hiredate');

5.更新数据

    SQL> update emps set job='student' where empno=7369;

        有where子句更新指定的一条记录中的多个字段

    SQL> update emps set job='student';没有where子句更新全部

   

    更新数据的子查询:

        SQL> update emps set

job=(select job from emps where empno=7935),

           sal=(select sal from emps where empno=7935)

           where empno=7936;

    6.删除

       删除指定列:

           SQL> delete from emps where empno=7937;

       删除全部:

SQL> delete emps;

       删除子查询:

SQL> delete from emps where deptno=(select deptno from emps where empno=7935);

三   数据库事务

    1.数据库事务由以下的部分组成:

    一个或多个DML 语句

一个 DDL(Data Definition Language – 数据定义语言) 语句

一个 DCL(Data Control Language – 数据控制语言) 语句

    2.数据库事务的开始和结束

       以第一个DML语句的执行作为开始

       以下面的其中一个作为结束:

commit 或 rollback 语句

DDL 或 DCL 语句(自动提交

DDL用于描述数据库中要存储的现实世界实体的语言

           DCL用户用来设置 或更改数据库用户或角色权限的语句,如grant、、

用户会话正常结束

系统异常终了

    3.Commit和rollback语句的优点

       (1)确保数据完整性

       (2)数据改变被提交之前预览

       (3)将逻辑上相关的操作分组

四  控制事务

    1.回滚到保留点

       使用savepoint语句在当前事务中创建保留点

       语法:

           创建保留点:savepoint a;

           混滚到保留点:rollback to a;

    2.事务进程

       自动提交在以下情况中执行

           DDL语句      

           DCL语句

           不使用commit或rollback语句提交或回滚,正常结束会话(exit退出)

       会话异常结束或系统异常会导致自动回滚

       事务的结束即为自动提交或手动提交之后一个事务结束。

    3.提交或回滚前的数据状态

       (1)改变前的数据状态时可以恢复的

       (2)执行DML操作的用户可以通过select语句查询之前修正

       (3)其他用户不能看到当前用户所作的改变,直到当前用户结束事务

       (4)DML语句所涉及到的行被锁定,其他用户不能操作。

注:行被锁定比如在一个sqlplus中插入了数据,但是没有提交,当再打开一个sqlplus窗口的时候,数据不能运行,只有当事务commit之后,另一个sqlplus才可以运行

    4.提交后的数据状态

        (1)数据的改变已经被保存到数据库中

       (2)改变前的数据已经丢失

       (3)所有用户可以看到结果

       (4)锁被释放,其他用户可以操作射击到的数据

       (5)所有保留点被释放

    5.数据回滚后的状态

       使用rollback语句可以使数据变化失效

           数据改变被取消

           修改前的数据状态被恢复

           锁被释放

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值