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 用户名;
- 事务
事务(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) – 限制最强的表锁,仅允许其他用户查询该表的行。禁止修改和锁定表。