Oracle 数据类型(Oracel 学习二)

数据类型 参数 描述
char(n) n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)
varchar2(n) n=1 to 4000字节 可变长的字符串,具体定义时指明最大长度n,
这种数据类型可以放数字、字母以及ASCII码字符集(或者EBCDIC等数据库系统接受的字符集标准)中的所有符号。
如果数据长度没有达到最大值n,Oracle 8i会根据数据大小自动调节字段长度,
如果你的数据前后有空格,Oracle 8i会自动将其删去。VARCHAR2是最常用的数据类型。
可做索引的最大长度3209。
number(m,n) m=1 to 38
n=-84 to 127
可变长的数值列,允许0、正值及负值,m是所有有效数字的位数,n是小数点以后的位数。
如:number(5,2),则这个字段的最大值是99,999,如果数值超出了位数限制就会被截取多余的位数。
如:number(5,2),但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。
如:number(3,0),输入575.316,真正保存的数据是575。
date 从公元前4712年1月1日到公元4712年12月31日的所有合法日期,
Oracle 8i其实在内部是按7个字节来保存日期数据,在定义中还包括小时、分、秒。
缺省格式为DD-MON-YY,如07-11月-00 表示2000年11月7日。
long 可变长字符列,最大长度限制是2GB,用于不需要作字符串搜索的长串数据,如果要进行字符搜索就要用varchar2类型。
long是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
raw(n) n=1 to 2000 可变长二进制数据,在具体定义字段的时候必须指明最大长度n,Oracle 8i用这种格式来保存较小的图形文件或带格式的文本文件,如Miceosoft Word文档。
raw是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
long raw 可变长二进制数据,最大长度是2GB。Oracle 8i用这种格式来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件。
在同一张表中不能同时有long类型和long raw类型,long raw也是一种较老的数据类型,将来会逐渐被BLOB、CLOB、NCLOB等大的对象数据类型所取代。
blob
clob
nclob
三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceosoft Word文档,以及音频、视频等非文本文件,最大长度是4GB。
LOB有几种类型,取决于你使用的字节的类型,Oracle 8i实实在在地将这些数据存储在数据库内部保存。
可以执行读取、存储、写入等特殊操作。
bfile 在数据库外部保存的大型二进制对象文件,最大长度是4GB。
这种外部的LOB类型,通过数据库记录变化情况,但是数据的具体保存是在数据库外部进行的。
Oracle 8i可以读取、查询BFILE,但是不能写入。
大小由操作系统决定。
以上是针对Oracle 8的,对于Oracle 9同样适用
Oracle 基本知识
一个表空间只能属于一个数据库

  每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)

  每个数据库最少有一个表空间(SYSTEM表空间)

  建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率,只应存放数据字典

  每个数据库最少有两个联机日志组,每组最少一个联机日志文件

  一个数据文件只能属于一个表空间

  一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中

  建立新的表空间需要建立新的数据文件

  数据文件被ORACLE格式化为ORACLE块,Oracle9i以前版本中,ORACLE块的大小是在第一次创建数据库时设定的,

  并且以后不能改变,要想改变,只能重建数据库

  一个段segment只能属于一个表空间,但可以属于多个数据文件

  一个区extent只能属于一个数据文件,即区间(extent)不能跨越数据文件

  PCTFREE和PCTUSED总和不能大于等于100

  单独一个事务不能跨越多个回滚段

  索引表不含ROWID值

  拥有不同大小的回滚段没有任何益处

  COMMIT后,数据不一定立即写盘(数据文件)

  一个事务即使不被提交,也会被写入到重做日志中。

  Oracle 8.0.4中,在初始安装时建立的缺省数据库,实例名为ORCL

  一个块的最大长度为16KB(有2K、4K、8K、16K)
  每个数据库最大文件数(按块大小)
  2K块        20000个文件
  4K块        40000个文件
  8K块或以上     65536个文件

  oracle server可以同时启动多个数据库

  一套操作系统上可以安装多个版本的ORACLE数据库系统(UNIX可以,NT不可以)

  一套ORACLE数据库系统中可以有多个ORACLE数据库及其相对应的实例

  每个ORACLE数据库拥有一个数据库实例(INSTANCE)(OPS除外)

  所以,一套操作系统上同时可以有多个oracle数据库实例启动

如何给表、列加注释?
SQL>comment on table 表 is '表注释';



注释已创建。



SQL>comment on column 表.列 is '列注释';



注释已创建。



SQL> select * from user_tab_comments where comments is not null;

SQL> select * from user_col_comments where comments is not null;

posted @ 2005-12-09 15:48  jhtchina  阅读(1387)  评论(0编辑  收藏  举报