码迷,mamicode.com
首页 > 数据库 > 详细

Oracle数据库(九)—— 数据处理

时间:2018-08-04 13:40:11      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:分享图片   save   condition   comm   顺序   子查询   语法   int   epo   

(一)插入数据

方式一

insert语句语法

INSERT INTO table [(column [, column...])]

VALUES (value [, value...]);

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

 

若按照列的顺序赋值,可以不用写列名

技术分享图片

否则要写列名,对于非空的列一定要复制

技术分享图片

 

方式二:从其他的表拷贝数据

技术分享图片

方式三:创建脚本(了解)

  • 在SQL 语句中使用 & 变量指定列值0。
  • & 变量放在VALUES子句中。

 技术分享图片

使用脚本,运行sql语句后,会出现弹框,所有弹框的值填好之后,这条数据会保存在数据库中

 

(二)更新数据

UPDATE table

SET column = value [, column = value, ...]

[WHERE condition];

技术分享图片

 

-- 更新 114号员工的工作和工资使其与205号员工 相同

(1)先查询114号与205号员工的工作和工资是否相同

技术分享图片

(2)更新信息

技术分享图片

(3)再次查询114号与205号员工的工作和工资是否相同

技术分享图片

 

-- 调整与employee_id 为200的员工job_id相同的,员工的department_id为employee_id为100的员工的department_id

技术分享图片

 

更新中的数据完整性错误

技术分享图片

department为55的部门不存在,所以无法修改,违反了完整性约束

技术分享图片

(三)删除数据

DELETE FROM table

[WHERE condition];

  • 使用 WHERE 子句删除指定的记录
  • 如果省略 WHERE 子句,则表中的全部数据将被删除

在delete中使用子查询

-- 删除dept1部门名称中含Public字符的部门id

技术分享图片

删除中的数据完整性错误

技术分享图片

若存在其他的表使用要删除的数据,则这条数据不能被删除

 

(四)数据库事务

事务:一组逻辑操作单元,使数据从一种状态变换成另一种状态

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

  • 一个或多个DML 语句
  • 一个 DDL(Data Definition Language – 数据定义语言) 语句
  • 一个 DCL(Data Control Language – 数据控制语言) 语句

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

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

  • COMMIT 或 ROLLBACK 语句
  • DDL 语句(自动提交)
  • 用户会话正常结束
  • 系统异常终止

 

1、COMMIT和ROLLBACK

优点

  • 确保数据完整性。
  • 数据改变被提交之前预览。
  • 将逻辑上相关的操作分组。

技术分享图片

 

2、保留点

  • 使用 SAVEPOINT 语句在当前事务中创建保存点。
  • 使用 ROLLBACK TO SAVEPOINT 语句回滚到创建的保存点。

技术分享图片

 

3、事务进程

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

  • DDL 语句。
  • DCL 语句。
  • 不使用 COMMIT 或 ROLLBACK 语句提交或回滚,正常结束会话。

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

 

4、提交或回滚前的数据状态

  • 改变前的数据状态是可以恢复的
  • 执行 DML 操作的用户可以通过 SELECT 语句查询之前的修正
  • 其他用户不能看到当前用户所做的改变,直到当前用户结束事务。
  • DML语句所涉及到的行被锁定, 其他用户不能操作。

 

5、提交后的数据状态

  • 数据的改变已经被保存到数据库中。
  • 改变前的数据已经丢失。
  • 所有用户可以看到结果。
  • 锁被释放,其他用户可以操作涉及到的数据。
  • 所有保存点被释放。

6、回滚后的数据状态

  • 数据改变被取消。
  • 修改前的数据状态被恢复。
  • 锁被释放。

(五)总结

使用DML语句改变数据和事务控制

技术分享图片

 

Oracle数据库(九)—— 数据处理

标签:分享图片   save   condition   comm   顺序   子查询   语法   int   epo   

原文地址:https://www.cnblogs.com/wffrzh/p/9418347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!