第三章锁和分区表 2 回顾 SQL 是数据库语言, Oracle 使用该语言在数据库中存储和检索信息 Oracle 支持各种数据类型,如 VARCHAR2 、 NUMBER 、 LONG 、 RAW 和 DATE 等数据操纵语言用于查询和修改表中的数据事务控制语言管理事务的一致性 SQL 操作符包括算术、比较、逻辑、集合和连接操作符 SQL 函数可以大致分为单行函数、聚合函数和分析函数 3 目标理解锁定的概念了解和使用表分区 4 锁的概念 2-1 锁是数据库用来控制共享资源并发访问的机制。锁用于保护正在被修改的数据直到提交或回滚了事务之后,其他用户才可以更新数据 5 锁的概念 2-2 修改表修改表拒绝访问 Toy_ID Name Price T001 Barbie 20 T002 GI Joe 456 锁定的优点一致性- 一次只允许一个用户修改数据完整性- 为所有用户提供正确的数据。如果一个用户进行了修改并保存,所做的修改将反映给所有用户?并行性-允许多个用户访问同一数据 Toy_ID Name Price T001 Barbie 20 T002 GI Joe 45 修改表中的数据查看表中的数据允许访问 7 表级锁行级锁锁的类型锁的类型 8 行级锁 3-1 Toy_ID Name Price T001 Barbie 20 T002 GI Joe 45 更新 T002 行更新 T001 行行被锁定?对正在被修改的行进行锁定。其他用户可以访问除被锁定的行以外的行允许访问 9 行级锁 3-2 行级锁是一种排他锁,防止其他事务修改此行在使用以下语句时, Oracle 会自动应用行级锁: INSERT UPDATE DELETE SELECT … FOR UPDATE SELECT … FOR UPDATE 语句允许用户一次锁定多条记录进行更新 MIT 或 ROLLBACK 语句释放锁 10 行级锁 3-3 SELECT … FOR UPDATE 语法: SELECT … FOR UPDATE [OF columns] [WAIT n | NOWAIT]; SQL> SELECT * FROM order_master WHERE vencode= ’ V002 ’ FOR UPDATE OF odate, del_date; SQL> UPDATE order_master SET del_date= ’ 28-8 月-05 ’ WHERE vencode= ’ V002 ’; SQL> COMMIT; SQL> SELECT * FROM order_master WHERE vencode= ’ V002 ’ FOR UPDATE WAIT 5; SQL> SELECT * FROM order_master WHERE vencode= ’ V002 ’ FOR UPDATE NOWAIT;
03 锁和分区表 来自淘豆网m.daumloan.com转载请标明出处.