SQL/Oracle——第十章 表空间

10-1的表要求掌握

一个数据库里包含多个表空间。
每一个表空间对应一个或多个物理文件。
创建表空间时必须创建数据文件,增加数据文件时必须指定表空间。

磁盘空间管理中的最高逻辑层:表空间(账户在表空间下)
下一层:段;一个段只能驻留在一个表空间
下一层:盘区;一个多个盘区组成段;每个盘区只能驻留在一个数据文件中
下一层:数据块;磁盘空间管理中逻辑划分的最底层;一组连续的数据块可以组成一个盘区

datebase表空间分类

system表空间:在system用户下创建的数据库等,都属于system表空间。
sysaux表空间
example表空间:各种实例方案。
user表空间:自建账户,scott等
temp表空间:临时数据 (包括system账户下产生的)
undotbs1表空间:撤销的数据

操作 (要求掌握
0.创建用户并授权
--在system用户下创建
create user mr identified by mr;--创建mr账户
--在scott用户下创建,先授权
grant create tablespace to mr;--授权时要一点点授权,不能一下全授权
grant create session,create table to mr;--给mr账户授权创建session和表的权力
1.查询表空间
--在SYSTEM账户从dba_data_files数据字典中;查询表空间及其包含的数据文件
col tablesapce_name for a10;
col file_name for a50;
col bytes for 999,999,999;
select tablespace_name,file_name,bytes from dba_data_files 
order by tablespace_name;

--查询USER表空间内存放的数据对象及其类型和拥有者
col owner for a10;
col segment_name for a30;
col segment_type for a20;
select segment_type,segment_name,owner from dba_segments where tablespace_name='USERS';

--查看数据字典
desc dba_users--权限比较高,查看数据字典
desc user_tables--普通用户可查
名称                                      是否为空? 类型
 ----------------------------------------- -------- ------------------
 TABLE_NAME                                NOT NULL VARCHAR2(30)
 TABLESPACE_NAME                                    VARCHAR2(30)
2.创建表空间
--创建永久表空间s1 (P200 例题10-4)
create tablespace s1 datafile 'd:\aa.dbf' size 2m;--会在d盘下创建一个aa.dbf文件
--临时表空间P211 例题10-31
create temporary tablespace bb tempfile 'd:\bb.tpf' size 2m;
3.设置默认表空间

普通用户:默认临时表空间是TEMP,默认的永久表空间是USERS
系统账户不能被修改,所以修改普通账户的表空间

注:以前默认的永久表空间也是SYSTEM,但是为了防止跟系统抢占资源就改了

系统账户:默认临时表空间是TEMP,默认永久表空间SYSTEM。
系统账户可以更改临时表空间,但是不能更改永久表空间

--查一下系统的默认永久表
select default_tablespace from dba_users where username='SYSTEM';
--查一下SCOTT的默认永久表,其它用户的永久表空间都被修改为tb2;查找默认表空间结果是users
select default_tablespace from dba_users where username='SCOTT';
select temporary_tablespace from dba_users where username='SCOTT';
--普通用户下
select table_name,tablespace_name from user_tables where table_name='CCC';   --要大写
--结果是未选定行(因system账户下没有ccc表,需要登录mr账户)

select default_tablespace,temporary_tablespace from user_users;--不管在什么用户下都可以查

--只能在系统账户下更改
--更改默认永久表空间为tb2,只能更改普通用户的,不能改系统的
alter database default tablespace tb2;
--更改默认临时表空间为temp,都可以更改
alter database default temporary tablespace temp;

--还可以在创建表的时候定义
create table teacher(
)
tablespace test;--这个时候teacher表不属于system了,属于test--默认的是users
4.修改、删除表空间
--修改表空间状态
alter tablespace tbs_test_3 read only;--修改这个表空间为只读状态
alter tablespace tbs_test_3 read write;--修改这个表空间为可读写状态
--删除表空间P204
drop tablespace tbs_test_1 [including contents] [cascade constraints];;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值