数据库操作语言DML
数据操作语言DML(Data Manipulation Language)用于操作数据库中的数据,包括:
出入新数据
修改已有的数据
删除不再需要的数据
数据合并
insert语句
insert语句用于向表中插入数据
语法:
insert into table[(column[,column...])]
values(value[,value...])
-----------------------------------------------------------------
insert into dept values(88,'市场部','北京');
insert into dept (deptno,dname) values(99,'技术部');
说明:
insert语句每次只能向表中插入一条记录
缺省字段名列表时,应为新插入记录中的每个字段设定新值
也可在insert语句中指定赋值字段列表只为部分字段显式设定新增,其余字段被缺省赋值为null
表间数据拷贝
可以在insert语句中使用子查询,实现表间数据拷贝:
insert into depta(id,name) select deptno,dname from dept;
说明:
此时不必再给出values子句
子查询中的值列表应与insert子句中的字段列表相对应
updata语句
updata语句用于更新表中数据
update table
set column = value[,column=value,...]
[where condition];
--------------------------------------------------------------
update emp set sal=sal+88;
update emp set sal=sal+1000,comm=comm+0.7
where empno=7778;
说明:
update语句每次可更新多条记录
可以使用where子句限定要更新的记录,如果缺省where子句,则更新表中的所有记录
delete语句
delete语句用于从表中删除数据
delete [from] table
[where condition];
---------------------------------------------------
delete emp;
delete from emp;
delete emp where empno=7778;
说明:
delete语句每次可以删除多条记录
可使用where子句限定要删除的记录,如果缺省where子句,则删除表中的所有记录
merge语句
merge语句用于进行数据合并——根据条件在表中执行行数据的修改或插入操作,如果要插入的记录在目标表中已经存在,则执行更新操作,否则执行插入.
merge into table [alias]
using (table | view | sub_query) [alias]
on(join_condition)
when matched then
update set col1=col1_val,col2=col2_val
when not matched then
insert(column_list)values(column_values);
create table test1(
eid number(10),
name varchar2(20),
birth date,
salary number(8,2)
);
insert into test1 values(1000,'张三','20-5-76',3300);
insert into test1 values(1001,'李四','12-3-90',6200);
create table test2(eid number(10),name varchar2(20),birth date,salary number(8,2));
select * from test2;
merge into test2
using test1
on(test1.eid=test2.eid)
when matched then
update set name=test1.name,birth,salary=test1.salary
when not matched then
insert(eid,name,birth,salary)values(test1.eid,test1.name,test1.birth,test1.salary);
select * from test2;
事务控制
事务(Transaction)
组成单个逻辑工作单元的一系列操作被称为事务。
数据库事务组成
0~多条DML语句
1条DDL(Data Define Language)语句
1条DCL(Data Control Language)语句
事务控制
通过将一组相关操作组合为一个要么全部成功,要么全部失败的逻辑工作单元,以简化错误恢复,提高应用程序的可靠性.
事务必须满足的ACID属性
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
事务的开始和结束
事务的开始于第一条可执行语句
事务结束:
遇到commit或rollback语句
遇到DDL或DCL语句
用户会话结束
系统崩溃
事务的提交和回滚
显式的提交和回滚操作时为了更好地保证数据的一致性.
下述情况下事务会被自动提交
执行一个DDL语句
执行一个DCL语句
正常结束会话
会话异常终止/系统崩溃时事务会被自动回滚
SqlPlus的自动提交
Sql Plus执行sql语句时可以设置是否自动提交,缺省设置为非自动提交.
查看设置:
show autocommit;
autocommit OFF
autocommit IMMEDIATE
改变设置:
set autocommit on;
set autocommit off;
提交/回滚前数据状态
- 当前事务中数据状态的改变时可以恢复的
- 当前事务中的DML操作结果只对当前用户(会话)可见,其他用户(会话)看不到当前事务中数据状态的改变,直到当前事务结束.
- 当前事务中DML语句所涉及到的行辈锁定,其他用户(会话)不能对其进行修改操作.
事务提交后数据状态
- 数据的修改永久生效,不可再撤销
- 数据以前的状态永久性丢失,无法恢复
- 所有的用户(会话)都将看到操作后的结果
- 记录锁被释放,其他用户对这些进行修改操作
- 事务中的保存点(Savepoints)被清除
事务回滚后数据状态
- 数据的修改被撤销
- 数据恢复到修改前的状态
- 记录锁被释放
保存点
通过保存点在当前事务中创建标记,将来可回退到指定的标记(保存点)处,实现事务的部分回滚.
insert into dept values(12,'Peter','Beijing');
insert into dept values(22,'Mark','Shanghai');
savepoint p1;
insert into dept values(44,'Tom','Shenzhen');
------------------
select * from dept;
rollback to p1;
select * from dept;
分享到:
相关推荐
### Oracle实用教程:DML与事务控制 #### 一、章节概述 本章节主要介绍了Oracle数据库中的数据操作语言(Data Manipulation Language, DML)及其相关的事务控制概念。通过本章的学习,读者能够掌握如何使用DML语句...
Oracle 数据操作与事务控制是数据库管理中的核心概念,主要涉及如何在Oracle数据库中添加、修改和删除数据,以及如何确保这些操作的完整性和一致性。在本章中,我们将深入探讨Oracle的数据操作语言(DML)和事务控制...
这对于并发控制和事务处理非常重要。 5. `LOCK TABLE`:锁定整个表,阻止其他用户执行DML操作,通常用于确保数据一致性。 在Oracle中,DML操作是事务的一部分,可以使用`COMMIT`提交更改,或者使用`ROLLBACK`撤销未...
事务控制语句如BEGIN、COMMIT、ROLLBACK用于管理和提交事务。 在开发后期发现数据库设计问题确实会影响项目进度,可能导致需要重构表结构,这将影响到已有的数据和应用程序。因此,良好的数据库设计是减少后期问题...
### 第八章 数据操作与事务控制 #### 一、章节概览 本章重点在于介绍数据操作语言(DML)中的基本概念以及事务控制的基本原理和技术。通过学习本章,学员将能够掌握如何使用SQL语句来执行数据的插入、更新、删除等...
Oracle数据库学习笔记,包括课程PPT(数据库基础,简单查询,单行多行函数,多表连接,子查询,高级子查询,集合运算,层次查询,DML与事务控制,数据库的网络连接,创建维护表,约束,视图,序列索引和同义词,用户...
在"数据库开发 Oracle数据库 SQL开发教程 第11章 数据操作与事务控制"中,我们深入探讨了如何使用SQL来执行对数据的操作以及事务管理。 数据操作语言(DML)是SQL的核心组成部分,主要用于对数据库中的数据进行增加...
事务控制语言(TCL)用于管理由 DML 语句所做的更改,允许将多个 DML 语句组合成一个逻辑事务。 - **COMMIT**:保存事务所做的工作。 - 示例:`COMMIT;` - **SAVEPOINT**:标识事务中的一个点,以便稍后回滚到该点...
事务控制是数据库管理系统中最重要的部分之一,它确保了数据库的一致性和可靠性。 事务的特性: * 原子性(A-Atomicity):事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么完全...
锁定表(LOCK TABLE)是另一种控制并发访问的机制。在Oracle中,你可以使用`LOCK TABLE`语句以共享或独占模式锁定表格,限制其他用户对表格的DML操作。然而,过度使用锁定可能导致死锁,即两个或多个事务相互等待...
Oracle事务与锁定是数据库管理系统中的核心概念,它们对于确保数据的完整性和一致性至关重要。事务是数据库操作的基本单元,它封装了一系列的数据库操作,确保这些操作要么全部成功,要么全部失败,从而保持数据库的...
事务控制主要涉及三个命令: 1. `COMMIT`:用于提交事务。提交后,所有对数据库的更改将被永久保存,其他用户可以看到这些更改。 2. `ROLLBACK`:用于回滚事务。执行回滚后,所有自事务开始以来对数据库的更改将被...
事务控制确保数据的一致性和完整性,通过`COMMIT`来保存更改,`ROLLBACK`来撤销更改,以及在执行DML操作时使用`SELECT FOR UPDATE`来防止并发冲突。 了解和熟练掌握DQL、DML、DDL和DCL是数据库管理的基础,它们共同...
本文将深入探讨SQL语句的五类分类,数据库事务的组成、开始与结束,以及事务进程。 首先,SQL语句主要分为五类: 1. **DML(Data Manipulation Language)**:用于操作数据库中的数据。包括`INSERT`(插入数据)、...
在**Oracle**数据库中,DML语句默认开启事务,直到提交或回滚。提交事务会将更改永久化,释放锁定资源;回滚事务则撤销未提交的修改,释放封锁。保留点(Savepoint)允许在事务中设置多个恢复点,方便局部回滚。 **...
1. **事务的定义与使用**:通过`BEGIN TRANSACTION`开始一个事务,`COMMIT TRANSACTION`或`ROLLBACK TRANSACTION`来提交或回滚事务。例如,在更新学生信息或调整成绩时,使用事务可以确保操作的原子性和一致性。 2....
事务控制是数据库管理系统的核心之一,目的是为了确保数据库操作的安全、可靠和高效。 事务的特性: * 原子性(A-Atomicity):事务应作为一个工作单元,事务处理完成,所有的工作要么都在数据库中保存下来,要么...
4. **事务控制语句**:MySQL提供了一些控制语句来管理事务,如`BEGIN`、`START TRANSACTION`(等同于`BEGIN`)、`COMMIT`、`ROLLBACK`、`SAVEPOINT`和`RELEASE SAVEPOINT`等。 5. **事务隔离级别**:MySQL支持四种...
Oracle数据库系统是世界上最广泛使用的数据库管理系统之一,尤其在企业级应用中占据主导...理解并运用事务控制,可以确保数据的一致性和完整性。在实际工作中,结合子查询和交互式脚本,可以实现更复杂的数据库操作。