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 约束名
;