Oracle表空间、表

    技术2026-08-04  25

    Oracle表空间、表

    表空间(TableSpace)表空间的结构语言操作 表(Table)常见数据类型约束条件(Constraint)

    表空间(TableSpace)

    认识表空间 表空间是对存储系统文件、用户信息等数据的一个空间。Oracle表空间属于Oracle中的存储结构,是由数据文件组成,一个数据库实例可以有N个表空间,每个数据库至少有一个表空间(SYSTEM表空间),一个表空间下可以有N张表。可以通过表空间来实现对Oracle的调优(Oracle数据库独特的高级应用)。数据库安装成功后会自动创建多个表空间。 系统自带表空间 SYSTEM:系统表空间

    用于存放Oracle系统内部表数据字典的数据,例如:表名、列名、用户名等。 Oracle不赞成将用户创建的表、索引、等存放在系统表空间。 系统表空间中的数据文件个数是非固定的,看与根据需求追加新的数据文件。

    SYSAUX :辅助表空间

    Oracle 11g 新增的表空间,充当SYSTEM的辅助表空间,

    USERS:用户表空间

    Oracle建议用户使用的表空间,可以在这个表空间上创建各种数据对象,如:创建表、索引、用户等数据对象。如:scott 用户。

    TEMP:临时表空间

    存放临时表和临时数据,用于排序和汇总等。

    UNDO:撤销表空间

    存放撤销的信息,也叫回滚表空间。当用户对数据进行修改操作时(插入、更新、删除等DML数据操作),Oracle会自动使用撤销表空间来存放修改前的旧数据,直到完成执行提交命令后,会根据保留时间长度来决定合适释放掉撤销表空间的部分空间。

    表空间分类 永久表空间:

    存储数据库中需要永久化存储的对象,比如二维表、视图、存储过程、索引。

    临时表空间:

    存储数据库的中间执行过程,如:保存order by数据库排序、分组时产生的临时数据。

    UNDO表空间:

    保存数据修改前的戴护具,为了对数据执行回滚、恢复、撤销的操作。

    表空间的结构语言操作

    数据字典(下文使用部分) DBA_TABLESPACES//系统的表空间信息 USER_TABLESPACE//用户的表空间信息 DBA_DATA_FILES//数据库文件的信息 查询表空间 select *from DBA_TABLESPACES; 查询表空间路径 select file_name from DBA_DATA_FILES; 查询临时表空间路径 select file_name from DBA_TEMP_FILES; 创建表空间 可以通过OEM(数据库企业管理工具)创建最常用的是PL/SQL命令方式创建 创建永久表空间 create tablespace 表空间名 datafile '路径 + 表空间名.dbf' / '表空间名.dbf' size 大小; 创建临时表空间 create TEMPORARY tablespaces 表空间名 tempfile'路径 + 表空间名.dbf' / '表空间名.dbf' size 大小; 创建永久 / 临时表空间 并设置自动增长 create tablespace / TEMPORARY tablespaces 表空间名 datafile'路径 + 表空间名.dbf' / '表空间名.dbf' size 大小 AUTOEXTEND on next 最低 maxsize 最高; 修改表空间的状态 修改表空间为 联机状态 / 脱机状态 alter tablespace 表空间名 ONLINE / OFFONLINE; 修改表空间为 只读状态 / 读写状态 alter tablespace 表空间名 READ ONLY / READ WRITE; 删除表空间 删除空数据的表空间,不包含物理文件 drop tablespace 表空间名; 删除空数据的表空间,包含物理文件 drop tablespace 表空间名 INCLUDING DATAFILES; 删除非空表空间,不包含物理文件 drop tablespace 表空间名 INCLUDING CONTENTS; 删除非空表空间,包含物理文件 drop tablespace 表空间名 INCLUDING CONTENTS AND DATAFILES; 有外键等约束关联到了本表空间中的表的字段,加上CASCADE CONSTRAINTS drop tablespace tablespace_name including contents and datafiles CASCADE CONSTRAINTS;

    表(Table)

    认识表 表是存放用户数据的对象,是数据库存储的基本单元。Oracle关系数据库的表是一个二维结构,由行(Row)列(Column)组成.表是最常见的一种组织数据的方式,一张表一般具有多个列(字段),每个字段具有特定的属性:字段名、数据类型、约束条件等。 表的结构语言操作 创建表Create Table

    表名注意格式:

    表名必须字母开头表名1–30 个字符之间表名能包含 A–Z, a–z, 0–9, _, $, 和 #表名唯一。 CREATE TABLE 表名{ 字段名1 数据类型1, 字段名2 数据类型2, 字段名3 数据类型3 }; 修改表Alter table 添加列 alter table 表名 add 列名 数据类型; 修改列 alter table 表名 MODIFY 列名 新的数据类型; 删除列 alter table 表名 DROP COLUMN 列名; 修改列名 alter table 表名 RENAME COLUMN 列名 to 新列名; 修改表名 rename 表名 to 新表名; 删除表Drop Table

    删除数据表操作在Oracle 10g之前那么以上的操作就彻底删除了,但是从 Orale 10g开始可以给挽救了一次闪回机制.

    删除表内的数据 TRUNCATE table 表名; 暂时删除,收进回收站 drop table 表名; 从回收站恢复表 FLASHBACK table 表名 to before drop; 彻底删除表 drop table 表名 PURGE; 查看回收站 select *from RECYCLEBIN; 清空回收站 PURGE RECYCLEBIN;

    当你不再需要该表时, 用 drop; 当你仍要保留该表,但要删除所有记录时, 用 truncate; 当你要删除部分记录时, 用 delete.

    常见数据类型

    字符型 数据类型存储字节说明char1~2000描述定长的字符型数据varchar21~4000描述可变的字符型数据 数值型 数据类型存储字节说明number(m,n)p:精度(总长度),s:小数位数描述固定长度的小数或整数float 日期类型 数据类型说明Date存储日期和时间(精确到秒)Timestamp显示的日期比date精确(精确到毫秒) 大对象类型 数据类型存储字节说明Clob1~4GB存储较大数据,存放海量文字(如:小说)。Blob1~4GB存储较大数据,电影、音乐等二进制文件。

    约束条件(Constraint)

    数据库除了存放数据以外,也要保证数据的正确性,所以在创建表时需要定义一些约束。 约束看与限制列的取值范围,强制列的取值来自合理的范围。

    约束条件的表现形式 列级约束

    有且只有 非空约束 才是列级约束。

    表级约束

    除 非空约束 其他全是表级约束。

    约束条件的分类

    主键约束(Primary Key)

    外键约束(Foreign Key)

    唯一约束(Unique)

    非空约束(Not Null)

    检查约束(Check)

    默认约束(Deufault)

    添加约束 alter table 表名 ADD CONSTRAINT 约束名 约束名称 (列名); 添加外键约束 alter table 表名 ADD CONSTRAINT foreign key(列名) REFERENCES 关联表名(关联表的列名); 添加非空约束 alter table 表名 MODIFY (列名 数据类型 NOT NULL); 不启用/启用/删除 约束 alter table 表名 disable/enable/drop constraint 约束名;
    Processed: 0.035, SQL: 9