模式是一个数据库对象的集合。模式为一个数据库用户全部,并具备与该用户相同的名称。sql
建表时的考量
1.在建立表以前先设计表数据库
应用开发人员负责设计应用的元素,包括表。数据库管理员负责设置存储参数、为表定义集群。每一个表应知足如下几点:
表是标准化的;
每一个列都具备合适的数据类型;
容许为空的列最后定义;
当合适时表集群化,节约空间,优化SQL语句的性能。性能
2.定义如何使用数据块空间
在本地化管理的表空间中,若是段空间是以MANUAL方式进行的,那么就经过在建立表时定义PCTFREE和PCTUSED参数,影响空间使用率和空间预留的数量,用于更新数据块的当前数据。
3.定义每一个表的位置
若是具备合适的权限和表空间引用,则能够在当前在线的任何表空间中建立新表。建议使用CREATE TABLE的TABLESPACE字句标识表空间来存储新的表。若是没有定义表空间,则会在用户默认的表空间上建立表。
4.考虑并行建立表
若是在CREATE TABLE字句中使用子查询,则能够在建立表时使用并行执行。因为多个过程可以一块儿工做用于建立表,因此可以提升建立的性能。
5.建立表时能够考虑使用NOLOGGING
为了更高效地建立表,能够考虑在CREATE TABLE AS SELECT语句中使用NOLOGGING字句。NOLOGGING能够生成最少的重作日志信息,这具备如下好处
节约了重作日志文件中的空间。
减小了建立表的时间。
提升了并行建立大表的性能。
6.估计表的大小,设置存储参数
在建立表前,首先要规划表的大小,这是由于:
能够联合使用表的估计大小,索引,回滚段和重作日志文件的大小,肯定建立数据库所须要的磁盘空间的总数;
可使用单个表的估计值,更有效地管理磁盘空间。
7.规划大表
表和盘区的物理大小是没有限制,可使用UNLIMITED和MAXEXTENTS关键字,简化对大对象的规划,减小空间浪费,提升空间使用率。优化
Oracle建议全部的变长字符域定义为VARCHAR2,而不是VARCHAR。
建表时经常使用的数据类型操作系统
VARCHAR2(n) 可变长度的字符串,其中n用于指定字符串的最大长度,n<=4000
CHAR(n) 固定长度的字符串,n表示指定字符串的最大长度,n<=2000
NUMBER(p,s) 适用于固定长度的整数和浮点数,其中p表示精度,指定数字总位数;s表示标度,用于指定小数点的数字位数。
DATE 定义日期和时间数据,长度固定(7字节),范围从公元前4712年的1月1日到公元9999年的12月31日
TIMESTAMP 定义日期和时间数据,显示时,不只会显示日期,也会显示时间和上下午等信息
BINARY_FLOAT 定义浮点类型,比NUMBER的效率更高,32位
BINARY_DOUBLE 定义双精度数字类型,64位
BLOB 大二进制对象,<=4GB
CLOB 大字符串对象,<=4GB
BFILE 外部的二进制文件,大小受操做系统的限制设计
建立表的语法
日志
CREATE TABLE USER.table_name {{COLUMN1 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}} {,{COLUMN2 DATAYPE [DEFAULT expr] [COLUMN_CONSTRAINT]}} ... [CONSTRAINT table_constraint] [CLUSTER cluster (COLUMN1 [COLUMN2]...)] [PCTFREE n] [PCTUSED n] [STORAGE n] [TABLESPACE tbs] [ENABLE | DISABLE] [AS QUERY]
参数说明
code
在Oracle11g中,虽然存储参数NEXT,MINEXTENTS,MAXEXTENTS,PCTINCREASE等在建立表结构时能够指定,可是,因为Oracle 11g采用了自动空间管理,因此除了INITIAL参数外,其他参数都会变为空值。
对象