DML(数据操纵语言)
1.概念(C)
数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增、删、改、查等操作。
通过以下几个关键字实现:
SELECT(查询) 、INSERT(插入)、 UPDATE(更新修改)、 DELETE(删除)
2.insert(插入):(A)
2.1 作用:
往表中插入数据。
2.2 方式:
1.元祖值式插入(一次插入一行)
语法:insert into 表(列1,列2...列n) values(值1,值2...值n);
例:
--一次插入一条记录 insert into emp (empno,ename,sal,deptno) values(9527,'华安',500,40); --需要往表中所有列都插入数据时,表后面的列可以不写 insert into emp values(9528,'秋香',null,9527,sysdate,100,null,40);
2.查询结果式(将子查询的结果插入到表中)
语法:insert into 表名 (子查询)
例:
--首先创建一个emp的临时复制表用于实验操作 create table emp_temp as select *from emp where 1 =2; --将子查询的结果插入到表中 insert into emp_temp (select * from emp);
3.delete(删除):(A)
3.1 作用 :
删除表中的数据。
3.2 语法:
delete from 表名 where 过滤条件(删除满足条件的)
例:
--from 可以省略不写 delete emp_temp where empno=9528; --没有 where 过滤条件就会删除所有数据 delete emp_temp;
4.update(更新):(A)
4.1 作用:
修改表中的数据。
4.2 语法:
update 表名 set 列1=值1,列2=值2,...,列N=值N where 过滤条件(判断修改哪一条记录)
例:
--给编号为9527的涨工资20%,这里没有过滤条件的话就变成给所有人涨20% updata emp_temp set sal=sal*1.2 where empno=9527;
5.事务(B)
5.1 概念:
事务(Transaction)是一个操作序列。这些操作要么都做,
要么都不做,是一个不可分割的工作单位,是数据库环境中的
逻辑工作单位。
5.2 作用:
事务是为了保证数据库的完整性。例如:
A给B转账,需要先减掉A的账户余额再加到B的账户上,这两个操作是一个整体,
不可能扣掉A的钱不给B加上,或者只给B加没有扣掉A的钱。
也就是,一个事务每项任务都必须正确执行。如果有任一任务执行失败,则整个事务就会被终止。此前对数据所作的任何修改都将被撤销
5.3 事务的开始与结束:
在oracle中,没有事务开始的语句。
一个事务起始于一条DML(Insert、Update和Delete )语句。
结束于以下的几种情况:
–用户显式执行Commit语句提交操作或Rollback语句回退。
–当执行DDL(Create、Alter、Drop)语句事务自动提交。
–用户正常断开连接时,事务自动提交。
–系统崩溃或断电时事务自动回退。
5.4Commit(提交)和Rollback(回退):
Commit :事务成功结束,提交数据到数据库,更新数据库内容
Rollback:事务不成功结束,事务中的操作被撤销,回到事务开始前的状态
5.5 事务四大特征(ACID):(C)
1. 原子性(Atomicity) 一个原子事务要么完整执行,要么干脆不执行。
也就是,一个事务每项任务都必须正确执行。如果有任一任务执行失败,则整个事务就会被终止。此前对数据所作的任何修改都将被撤销
2. 一致性(Consistency) 一致性代表了底层数据存储的完整性。就像上面第2点举的例子,A钱减了B钱才能加,两边的数据保持一致
3. 隔离性(Isolation),在事务或工作单元执行完毕之前,其所访问的数据不能受系统其他部分的影响。(类似于线程安全)
4. 持久性(Durability) 持久性表示在某个事务的执行过程中,对数据所作的所有改动都必须在事务成功结束前保存至某种物理存储设备。这样可以保证,所作的修改在任何系统瘫痪时不至于丢失。