日期:2014-05-16  浏览次数:20382 次

Oracle DB 处理数据
? 描述各个数据操纵语言(DML) 语句
? 在表中插入行
? 更新表中的行
? 从表中删除行
? 控制事务处理

? 在表中添加新行
– INSERT语句
? 更改表中的数据
– UPDATE语句
? 从表中删除行:
– DELETE语句
– TRUNCATE语句
? 使用COMMIT、ROLLBACK和SAVEPOINT执行数据库事务处理控制
? 读一致性
? SELECT语句中的FOR UPDATE子句

  • 数据操纵语言
? 在进行以下操作时可以执行DML 语句:
– 在表中添加新行
– 修改表中的现有行
– 从表中删除现有行
? 一个事务处理由构成一个逻辑工作单元的一组DML 语句组成。


数据操纵语言(DML) 是SQL 的核心部分。当你要在数据库中添加、更新或删除数据时,就需要执行DML 语句。构成一个逻辑工作单元的一组DML 语句被称为一个事务处理。假定有一个银行数据库。当银行客户从储蓄帐户向支票帐户中划转资金时,该事务处理可能由三个单独的操作组成:减少储蓄帐户金额、增加支票帐户金额以及在事务处理日记帐中记录该事务处理。Oracle Server 必须确保所有这三条SQL 语句都得以执行,才能使帐户得到正确的结算。如果由于某种原因未能执行事务处理中的某条语句,则必须取事务处理的其它语句。


  • INSERT语句语法
? 使用INSERT语句可在表中添加新行:
? 使用此语法一次只能插入一行。
INSERT INTO table [(column [, column...])] VALUES (value [, value...]); 


通过发出INSERT语句可以在表中添加新行。
在该语法中:
table 是表名称
column 是表中要填充的列的名称
value 是该列相应的值
注:这个带有VALUES子句的语句一次只能在表中添加一行。

  • 插入新行
? 插入一个新行,此行的每一列都含有值。
? 按照表中列的默认顺序列出这些值。
? (可选)在INSERT子句中列出这些列。
? 将字符和日期值放在单引号中。
INSERT INTO departments(department_id, department_name, manager_id, location_id) 
VALUES (70, 'Public Relations', 100, 1700); 

由于可以插入的新行上的每一列都含有值,因此不需要在INSERT子句中使用列的列表。但是,如果不使用列的列表,则必须按照表中列的默认顺序列出值,而且必须为每一列都提供一个值。
将字符和日期值放在单引号中,但建议不要将数字值放在单引号中。

  • 插入带有空值的行
? 隐式方法:在列的列表中省略该列。
INSERT INTO departments (department_id, department_name) VALUES (30, 'Purchasing'); 
? 显式方法:在VALUES子句中指定NULL关键字。
INSERT INTO departments VALUES (100, 'Finance',