Oracle之同义词、事务、数据字典

本文详细介绍了Oracle数据库中的同义词,包括其分类、创建与删除方法。接着讨论了事务的ACID特性,以及事务的提交、回滚和保存点。此外,还阐述了数据字典的作用和分类,并提及动态性能视图监控数据库状态的重要性。最后,简要说明了锁的概念及类型,如行级锁和表级锁。
摘要由CSDN通过智能技术生成

同义词、事务、数据字典

1、同义词

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

同义词分类

  • 公有同义词:可以被所有的数据库用户访问
  • 私有同义词:只能在其模式内访问,且不能于当前模式的对象同名

创建同义词

create [public][or replace] synonym synonym_name for object;

-- 例
create synonym e for emp;
-- 使用
select * from emp;
select * from e;

-- 授予同义词所有权限
grant create any synonym to 用户名;
  • synonym:同义词关键字
  • or replace:创建或替换现有的同义词,
  • synonym_name:同义词名称
  • object:同义词的对象,可以是表、视图等

删除同义词

drop [public] synonym e;

2、事务

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

事务的ACID属性

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

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

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

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

  • commit:事务提交

  • rollback:事务回滚

  • savepoint:声明保存点

事务分类

  • 显示事务
    1. set autocommit off,关闭事务的自动提交
    2. 手动调用 commit 和 rollback
  • 隐式事务
    1. set autocommit on,事务自动提交
    2. create、drop、grant 等操作事务时自动提交
    3. 每一个insert、update、delete执行后都会提交到数据库

3、数据字典

  • 记录了数据库的最基本的信息
  • 数据字典包括数据字典基本表和数据库字典视图

数据字典分类

  • USER_:表示当前用户拥有的信息
  • ALL_:表示当前登录用户有权限看到的信息
  • DBA_:表示数据库管理员能够看到的信息,也就是整个数据库范围内的信息
-- 表字段字典试图:user_tab_cols
select * from user_tab_cols;
-- 查询emp表中的字段信息
select column_name from user_tab_cols where table_name='EMP';

-- 用户对象字典视图:user_objects
select * from user_objects;
select * from user_tablespaces;
select * from dba_tablespaces;

4、动态性能视图

存储数据库中每时每刻都在变化的信息,主要是数据库的活动状态信息,它把存储在内存里的信息、和存储在控制文件里的信息,以视图的形式展现出来。

常见的动态性能视图

  • v$parameter:初始化参数文件中所有项的值
  • v$process:当前进程的信息
  • v$session:有关会话的信息
  • v$sysstat:基于当前操作会话进行的系统统计
  • v$log:从控制文件中提取有关重做日志组的信息
  • v$logfile:有关实例重置日志组文件名及其位置的信息
  • v$lock:当前进程已获得的和正在请求的锁定信息
  • v$transaction:数据库的事务信息
  • v$fixed_view_definition:中记录了所有的动态性能视图的定义信息

5、锁

  • 锁的概念:锁是数据库用来控制共享资源并发访问的机制。
  • 锁用于保护正在被修改的数据,直到提交或回滚了事务之后,其他用户才可以更新数据

锁的类型

  • 行级锁(TX):行级锁是一种排他锁,防止其他事务修改此行,在使用以下语句时,Oracle会自动应用行级锁:update、delete、select… for update
  • 表级锁(TM)

删除锁

-- 查询锁
select s.sid, s.serial#
from v$locked_object lo, dba_objects ao, v$session s
where ao.object_id = lo.object_id and lo.session_id = s.sid;
-- 删除锁
alter system kill session '227,1017';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值