Oracle数据库——更新操作和事务处理

目录

复制表

插入数据

修改数据:

删除数据(属于危险操作):

事务处理(死锁)


复制表

此列语法仅Oracle支持

CREATE TABLE myemp AS SELECT * FROM emp;

表已创建。

插入数据

  • 完整格式:INSERT INTO 表名称[(列名称1,列名称2,...)]VALUES(值1,值2....);            (建议使用)
  • 简化格式:INSERT INTO 表名称 VALUES(值1,值2....);

若不添加所有列的数据:

  1. 明确一个字段内容为null;
  2. 不编写不需要的内容,那个字段就会默认填充
INSERT INTO MYEMP VALUES(6666,'LUJJ','CEO',NULL,TO_DATE('2018-09-24','yyyy-mm-dd'),10000,NULL,10);

修改数据:

写更新操作,必写WHERE子句

格式:UPDATE 表名称 SET 字段1=值1,字段2=值2,...[WHERE 更新条件]

UPDATE MYEMP SET JOB='CTO' WHERE ENAME='LUJJ';

例:将工资低于平均工资的提升50%

update myemp
SET SAL=sal*1.5
WHERE SAL<(SELECT AVG(SAL) FROM myemp);

删除数据(属于危险操作):

两种删除方式:

  1. 物理删除(DELETE FROM):彻底从表中删除记录;
  2. 逻辑删除:增加一个逻辑字段;例:当设flg=1时表示删除,flg=0时表示未删除;查看时增加一个限定条件,SELECT * FROM .....WHERE flg=0查看未删除数据。在工作中较为常用

格式:DELETE FROM 表名称[WHERE 删除条件]

DELETE FROM myemp  WHERE empno IN (7369,7499);

事务处理(死锁)

只有在更新操作才会存在事务处理

ROLLBACK:恢复初始

COMMIT:事务提交

当更新操作未提交,则会保存在缓冲区中,若是不提交,重新打开数据依旧是原始值

每一个session都有自己独立的事务处理,不同session对同一条数据进行事务处理的时候,当第一个session未提交完成,第二个session会处于等待状态 

猜你喜欢

转载自blog.csdn.net/qq_36230524/article/details/82829529