同义词、事务、锁

本文详细介绍了Oracle数据库中的同义词,包括公有与私有同义词的创建、使用和删除。接着讨论了事务的ACID属性、提交、回滚以及保存点的概念。最后,讲解了锁的机制,如行级锁和表级锁的类型及其在并发控制中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.同义词

同义词:它是Oracle给数据库中的对象取的另一个名字,类似于sql语句中的别名

但是和别名又有区别,别名只使用在sql语句中,同义词是保存在数据库, 一次创建可以一直使用,同义词使用和使用原对象完一样,可以给表、视图等起同义词

同义词共有两种类型

公有同义词可被所有的数据库用户访问

私有同义词只能在其模式内访问,且不能与当前模式的对象同名。

创建同义词语法:

create [public] synonym synonym_name for object;

create synonym:synonym是同义词的关键字

synonym_name:同义词名称

object:取同义词的对象,可以是表、视图等

create synonym e for emp;

使用

select * from emp;

select * from E;

--创建或替换现有的同义词

CREATE OR REPLACE SYNONYM emp_syn FOR SCOTT.emp;

删除同义词

DROP SYNONYM emp;

DROP PUBLIC SYNONYM emp_syn;

grant create any synonym to 用户名;

  1. 事务

事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作。这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行。

事务是一个不可分割的工作逻辑单元。

例如:

    银行转账过程就是一个事务。它需要两条UPDATE语句来完成,这两条语句是一个整体,如果其中任一条出现错误,则整个转账业务也应取消,两个账户中的余额应恢复到原来的数

据。

事务必须具备以下四个属性,简称ACID 属性:

原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行

一致性(Consistency):当事务完成时,数据必须处于一致状态

隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务

永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性

事务提交:commit

事务回滚:rollback

声明保存点:savepoint

声明保存点:savepoint 保存点名字

回滚保存点:rollback to savepoint 保存点名字

显式事务:(手动)

   1.set autocommit off --关闭事务的自动提交

   2.手动调用commit和rollback

隐式事务:(自动)

   1.set autocommit on

   2.create、drop、grant等操作事务是自动提交

   3.每一个insert、update、delete执行后都会提交到数据库

3.

锁的概念

锁是数据库用来控制共享资源并发访问的机制。

锁用于保护正在被修改的数据

直到提交或回滚了事务之后,其他用户才可以更新数据

锁的类型

行级锁、表级锁

行级锁是一种排他锁,防止其他事务修改此行

在使用以下语句时,Oracle会自动应用行级锁:

UPDATE、

DELETE、

SELECT … FOR UPDATE

SELECT … FOR UPDATE[WAIT n | NOWAIT]语句允许用户一次锁定多条记录进行更新

使用COMMIT或ROLLBACK语句释放锁

表级锁

锁定整个表,限制其他用户对表的访问

使用命令显示的锁定表,应用表级锁的语法是:

  LOCK TABLE 表名 IN 锁类型MODE;

行共享 (ROW SHARE) – 禁止排他锁定表

行排他(ROW EXCLUSIVE) – 禁止使用排他锁和共享锁

共享锁(SHARE)

锁定表,仅允许其他用户查询表中的行

禁止其他用户插入、更新和删除行

多个用户可以同时在同一个表上应用此锁

共享行排他(SHARE ROW EXCLUSIVE) – 比共享锁更多的限制,禁止使用共享锁及更高的锁

排他(EXCLUSIVE) – 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值