Oracle学习日志-2(用户与表空间)

表空间是数据库的逻辑存储空间,可以理解为表空间是数据库开辟的一个空间,用于存放数据库的对象。表空间是由一个或者多个数据文件构成的。我们存放的表,数据库对象等,都是存放在表空间中的数据文件里的。
表空间分为永久表空间,临时表空间,UNDO表空间。

  • 永久表空间主要存储数据库当中需要永久存储化的一些对象。比如表,视图等。
  • 临时表空间主要存储数据库在操作过程中,中间执行的过程,当执行结束后,存放的内容就自动被释放掉。
  • UNDO表空间用于数据在被修改之前的数据,当一张表进行修改时,它会保存表之前的数据。用于回滚。

在oracle中,使用不同用户登录,所对应的表空间也有所不同。首先介绍两个数据字典(数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑等进行定义和描述)

  • dba_tablespaces:针对系统管理员用户来查看的数据字典。
  • user_tablespaces:普通用户登录后查看的数据字典。

用system用户连接到数据库后,查询dba_tablespaces。

查询结果表示dba_tablespaces这个数据字典有列名有TABLESPACE_NAME,NOT NULL表示不能为空,类型为可变字符类型,长度为30。列名为BOLOCK_SIZE的这一列不能为空,类型为NUMBER。后面的以此类推。
然后在查询一下表空间有哪些。

可以看到,用system登录数据库后,默认的表空间就有5个。

  1. SYSTEM:主要sys用户存放表,视图,也叫系统表空间。
  2. SYSAUX:作为辅助表空间。
  3. UNDOTBS1:用于存放一些撤销信息,属于UNDO类型表空间。
  4. TEMP:用于存储一些SQL语句处理的表,和索引信息,属于临时表空间。
  5. USERS:存储数据库用户创建的数据库对象。
    普通用户登录数据库只能查看user_tablespaces,不能查看dba_tablespace。user_tablespaces的表空间与dba_tablespace的名字一样。

每一个用户对应着默认的表空间,可以多个用户共用同一个表空间。也可以指定一个用户只用某一个表空间,如果不指定,就默认为users表空间。
现在有两个连接,一个是system系统管理员用户登录了数据库。一个是scott普通用户登录数据库。
我创建scott用户的时候没有指定表空间,所以它指定的是默认表空间。用selcet查询一下

可以看到scott用户指定的表空间是默认的USERS表空间(scott用户的名字是C##scott),scott用户创建的表就默认放在USERS表空间
system用户的指定表空间为SYSTEM。

sys用户指定的表空间为SYSTEM。

sys、system管理员创建的表就放在SYSTEM表空间。


总结:

之前边看视频边查资料,对于表空间的理解还是云里雾里,但是自己动手写了几个例子后,还是有了一个大概的理解。首先表空间是划分数据库的逻辑空间。相当于数据库是一个大仓库。表空间就是地上画的粉笔线。用来区分存放物品的位置。用户就相当于使用仓库的人。sys和system都是管理员用户。相当于仓库管理员。可以划分新的表空间。也可以删除或者改动表空间。
一开始这个仓库(数据库)就划分了5个区域(表空间)。用来存放东西或者使用。仓库管理员(sys,system)就负责管理仓库的事物。除了管理员,还有普通的员工(普通用户)。比如今天新来了个员工小王,仓库管理员就告诉小王。我给你划了块地方(给用户指定表空间)。你以后干什么就用这块地。然后又来了个员工小张,仓库管理员也告诉小张“你和小王用同一块地就行了”(一个表空间可以被多个用户共用)。之后又有一个新员工小李。仓库管理员没有告诉他用哪里。小李就使用了默认的的一块地(默认使用USER表空间)。

转载于:https://my.oschina.net/u/4000133/blog/2995819

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值