Oracle-06-常用数据类型

来源:互联网 发布:96台海战争知乎 编辑:程序博客网 时间:2024/06/09 18:32

一、掌握Oracle常用数据类型,是创建表的基础。因为创建表时候,都必须为表中的每一列指定数据类型。

Oracle常用数据类型如下:

(1)CHAR(length):存储固定长度字符串。length参数指定了字符串的长度。如果存储的字符串长度较小,就在字符串末尾以空格补全

(2)VARCHAR2(length):存储可变长度字符串。length参数指定了字符串的长度。即使存储字符串长度比指定长度小,也不用在字符串末尾以空格补全。

 

下面通过一个例子来说明上述两种数据类型的区别:

Step1:在SQL*PLUS中输入如下图命令,回车,创建一个salary表:


第1行左括号回车,第2行逗号表示本次命令还有其余内容,如果当前命令全部输入完毕,则不需要逗号,有逗号表示还有命令没输入,--表示注释。

Step2:输入desc salary查询这个表,如下图:


Step3:在表中插入数据,如下图:


insert into和values是关键字;

Step4:记得用commit命令提交,将数据彻底保存在数据库中,如下图:


Step5:用select查询表,如下图:


Step6:注意这里说下CHAR和VARCHAR2两种数据类型的区别,前者我们存入的数据“张三”,因为之前指定的name列长度是10,这个“张三”长度不足10,所以在后面补空格,对于VARCHAR2类型,我们存储的数据是“成都”,因为之前address列指定长度是20,这个“成都”长度不足20,所以不在后面补空格下面进行验证:


length()是取长度,发现“张三”对应的CHAR型自动在后面补空格,而“成都”对应的VARCHAR2型不补空格。

下面再用一个命令来验证:


trim()是删除空格,发现“张三”在数据库中长度是2,但是因为它是CHAR型且指定长度是10,所以在后面补空格。

我们接着在salary表中存入新的数据,然后查看长度,如下图:



发现’zhangsan’的长度是10,因为是CHAR型,补齐空格,而’chengdu’的长度是7,因为是VARCHAR2型,不需要补空格。

 

(3)DATE:存储日期和时间类型。

下面举例来详细说明:

Step1:创建新表,如下图;


Step2:查看表结构,如下图:


Step3:为表添加数据,如下图:


发现报错,那么将SQL命令改为如下图所示:


数据添加成功。注意用了to_date转换日期格式。

Step4:用commit提交,如下图:


Step5:查询表信息,如下图:


发现Oracle中日期默认存储格式是“日-月-年”,且年只保留后两位数字。这也是为什么Step3中报错,因为1999-09-09不符合“日-月-年”的顺序。那么如果09-09-99也会报错,如下图:


因为虽然符合“日-月-年”的顺序,但是月份应该写9而不是09所以要写成09-9-99就对了,如下图:


然后提交,查询,如下图:


(4)INTEGER:存储整数。整数不包括浮点数。

(5)NUMBER(m,n):存储浮点数,但也可以存储整数。m代表总共位数,n代表小数点右边的最大位数。如果没有指定m,也没有指定n,那么默认存储38位精度的数字。

下面举例详细说明:

Step1:创建表,如下图:


number(6,2)表示一共6位数字且小数部分2位,所以4位整数+2位小数=6位数字。

Step2:为表中添加数据,故意将s1对应的位置写上1.2,提交,查询,如下图:


发现插入的1.2由于是Integer型,存入数据库中变成了1,注意,插入数字不需要单引号接着,我们再插入1.8,看会不会四舍五入,如下图:


果然会四舍五入,即插入1.8,由于Integer型,存入数据库中变成了2

【注意】Oracle中,对于NUMBER(6,2)这种,只要整数部分位数小于等于4即可,小数部分位数小于等于2即可,不需要严格整数位数4小数位数2。

(6)BINARY_FLOAT:Oracle 10g提供一种新数据类型,用于存储一个单精度的32位浮点数。

(7)BINARY_DOUBLE:Oracle 10g提供的一种新数据类型,用于存储一个双精度64位浮点数。

0 0
原创粉丝点击