创建表空间应该使用create tablespace
SQL> create tablespace test datafile '\dmp\test.dbf' size 20M;
Tablespace created.
如果想查看数据库里面有哪些表空间,可以在数据字典中获取其相关信息。
SQL> conn / as sysdba
Connected.
SQL> select tablespace_name,file_name from dba_data_files order by file_name;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
EXAMPLE
/data/app/oracle/oradata/orcl/example01.dbf
SYSAUX
/data/app/oracle/oradata/orcl/sysaux01.dbf
SYSTEM
/data/app/oracle/oradata/orcl/system01.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
UNDOTBS1
/data/app/oracle/oradata/orcl/undotbs01.dbf
USERS
/data/app/oracle/oradata/orcl/users01.dbf
TEST
/data/app/oracle/product/11.2.0/db_1/dbs/dmptest.dbf
6 rows selected.
记住咯 要用管理员权限。突然发现最上面的路径错了 导致我最下面的TEST的名字不对咯!⊙﹏⊙b汗大家仔细看下就知道
当然有时候我们会想,我现在留的表空间以后会不会不够用呀!这里Oracle给我们提供了一个自动扩展的功能
SQL> create tablespace test1 datafile '/dmp/test1.dbf' size 20M autoextend on next 5M;
Tablespace created.
SQL> select tablespace_name,file_name from dba_data_files order by file_name;
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
EXAMPLE
/data/app/oracle/oradata/orcl/example01.dbf
SYSAUX
/data/app/oracle/oradata/orcl/sysaux01.dbf
SYSTEM
/data/app/oracle/oradata/orcl/system01.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
UNDOTBS1
/data/app/oracle/oradata/orcl/undotbs01.dbf
USERS
/data/app/oracle/oradata/orcl/users01.dbf
TEST
/data/app/oracle/product/11.2.0/db_1/dbs/dmptest.dbf
TABLESPACE_NAME
------------------------------
FILE_NAME
--------------------------------------------------------------------------------
TEST1
/dmp/test1.dbf
7 rows selected.
上面的autoextend on next 5M 空间不够的时候指定每次增长5M空间。还有我改了地址 应该看得懂吧!
当然你可能还会问 一直增长或许也不好吧!!这里我们只要在自增长的后面加一句 maxsize 500M;就可以了
这里的500m指的是表空间的最大尺寸500M.
接下来我就来说说表空间的使用;
首先我们先来看下数据库的默认表空间
SQL> select user_id,username,default_tablespace from dba_users order by user_id;
USER_ID USERNAME DEFAULT_TABLESPACE
---------- ------------------------------ ------------------------------
0 SYS SYSTEM
5 SYSTEM SYSTEM
9 OUTLN SYSTEM
14 DIP USERS
21 ORACLE_OCM USERS
30 DBSNMP SYSAUX
31 APPQOSSYS SYSAUX
32 WMSYS SYSAUX
42 EXFSYS SYSAUX
43 CTXSYS SYSAUX
45 XDB SYSAUX
USER_ID USERNAME DEFAULT_TABLESPACE
---------- ------------------------------ ------------------------------
46 ANONYMOUS SYSAUX
53 ORDSYS SYSAUX
54 ORDDATA SYSAUX
55 ORDPLUGINS SYSAUX
56 SI_INFORMTN_SCHEMA SYSAUX
57 MDSYS SYSAUX
60 OLAPSYS SYSAUX
这里我就截取一部分。
说了这么多 我就来说下重点吧!下面我们聊聊默认表空间的修改:
SQL> alter database default tablespace test
2 ;
Database altered.
这个就是我们对默认表空间名称进行修改成test。还有就是我们如果建表的时候没有分配表空间就会默认使用表空间,就是上面查找的users是普通用户的
默认表空间。而上面的alert database是对users进行修改成test。
这个对具体的表空间进行修改
SQL> alter tablespace test1 rename to test_name2;
Tablespace altered.
最后我们说下表空间的删除
这里说下如果我们的表空间是默认表空间 也就是说当初你建表的时候没有设定表空间 。因为你是删不了默认表空间的所以我们改下名字咯!
SQL> drop tablespace test_name2 including contents and datafiles;
Tablespace dropped.