oracle入门之基本数据类型

时间:2022-12-17 05:45:55

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函数来添加。