1、char(size)存放字符串,它最大可以存放2000个字符,是定长。
举例说明:
create table test1(name char(32));//test1表中的name字段最多存放32个字符,不足32个字符oracle会用空格补齐,如果超过会报错。
2、varchar2(size)存放字符串,它最大可以存放4000个字符,是变长。
举例说明:
create table test2(name varchar2(16));//test2表中的name字段最多存放16个字符,实际有几个字符就占几个字符的空间,如果超过会报错。
特别说明:如果我们的数据的长度是固定的,比如商品编号(8位),则应当使用char来存放,因为这样存取的速度就会提高。如果存放的数据长度是变化的,则使用varchar2来存放。
3、nchar(n)以Unicode编码来存放字符串,它最大可以存放2000个字符,是定长。
举例说明:
create table test3(name nchar(32));//与char类似,只是以Unicode编码存放字符串
4、nvarchar(n)以Unicode编码来存放字符串,它最大可以存放4000个字符,是变长。
举例说明:
create table test4(name nvarchar2(16));//与varchar2类似,只是以Unicode编码存放字符串
特别说明:nchar和nvarchar2与char和varchar2的区别在于,nchar和nvarchar2不论存放英文字符或中文字符都只占1个字符。如存放a和存放'中'都只占1个字符位。而char和varchar2存放a占1个字符而存放'中'则占2个字符。
5、clob字符型大对象,它最大可以存放8TB,是变长。
与字符型的char/varchar2/nchar/nvarchar2的使用方式一样。
6、blob二进制数据,可存放图片、声音,它最大可以存放8TB,是变长。
与字符型的char/varchar2/nchar/nvarchar2的使用方式一样。
注意:一般情况下很少使用数据库来存放媒体类文件,一般只使用数据库来记录媒体类文件的URL地址。如果考虑到文件的安全性,可以存放到数据库中来保存。
7、number可以存放整数,也可存放小数,是变长。
number(p,s)//p代表整数位,s代表小数位
保存数据范围:-1.0e-130至1.0e+126;保存在机器内部的范围:1~22bytes
特别说明:
有效位:从左到右,第一个非0数就是第一个有效位。
s>0精确到小数点右边s位,并四舍五入。然后检验有效位是否<=p
s<0精确到小数点左边s位,并四舍五入。然后检验有效位是否<=p+|s|
s=0等价于number(p)此时number表示整数。
说明:-1.0e-130(科学计数法):就是-1.0乘以10的-130次方
1.0e+126:就是1.0乘以10的126次方
举例说明:
number(5,2)
表示一个小数有5位有效数,2位小数。范围-999.99~999.99
如果数值超出了位数限制就会被截取多余的位数。但在一行数据中的这个字段输入575.316,则真正保存到字段中的数值是575.32。
number(5)<=>number(5,0)
表示一个五位整数,范围-99999~99999。
输入57523.316,真正保存的数据是57523
8、date,用于表示时间,(年/月/日/时/分/秒),是定长。
举例说明:
create table test5(birthday date);//添加时个要使用默认格式insert into test5 values('11-11月-11');如使用insert into test5 values('2011-11-11');则报错。
特别说明:oracle日期有默认格式为:DD-MON-YYYY,天-月-年;如果我们希望使用自己习惯的日期添加,也可以,但是需要借助oracle函数来添加。