博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle中int与number的区别
阅读量:4185 次
发布时间:2019-05-26

本文共 1358 字,大约阅读时间需要 4 分钟。

oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。
int类型只能存储整数;
number可以存储浮点数,也可以存储整数;
number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
number(8)存储总长度为8的整数;
int相当于number(22),存储总长度为22的整数。
举例说明:
--创建表结构
SQL> create table tab(id0 int,id1 number,id2 number(8,1),id3 number(8));
Table created
SQL>
--插入测试数据
SQL> insert into tab select 1,1.5,1.6,8 from dual;
1 row inserted
SQL> insert into tab select 1,1.55,1.6,8 from dual;
1 row inserted
SQL> insert into tab select 1,1.595,1,8 from dual;
1 row inserted
SQL> commit;
Commit complete
SQL> select * from tab;
ID0 ID1 ID2 ID3
---------- ---------- ---------- ---------
1 1.5 1.6 8
1 1.55 1.6 8
1 1.595 1.0 8
--查询数据字典表dba_tab_columns
SQL> select table_name,column_name,data_type,data_length,data_precision,data_scale from dba_tab_columns a
2 where table_name='TAB'
3 and owner='NETMAX'
4 order by column_id;
TABLE_NAME COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE
--------------- -------------- ----------------- ---------------- ----------- ----------
TAB ID0 NUMBER 22 0
TAB ID1 NUMBER 22
TAB ID2 NUMBER 22 8 1
TAB ID3 NUMBER 22 8 0
SQL>
在dba_tab_columns表中,
Data_type表示字段类型;
Data_length表示字段类型的长度;
Data_Precision表示字段类型的精度的总长度,如果为null,表示精度的总长度不固定,最长为Data_Length;
Data_scale表示字段类型的精度范围,如果为0,表示只能存储为整数,
如果为null,表示可以存储整数或者浮点数,浮点数位数不确定,
如果为整数,表示存储的精度位数。
查询dba_tab_columns表,发现tab表中ID0字段类型int已经被转换为number(22)。

转载地址:http://dcjoi.baihongyu.com/

你可能感兴趣的文章
Promise简单实践
查看>>
vue中无缝轮播简单实现
查看>>
ES5和ES6中的类定义区别
查看>>
利用解构赋值快速提取对象参数
查看>>
CSS3简单实现360deg旋转
查看>>
vue中使用H5的audio
查看>>
PHPStorm配置ESlint检查代码
查看>>
树的子结构
查看>>
判断两棵二叉树是否相似
查看>>
二叉树中和为某一值的路径
查看>>
数字在排序数组中出现的次数
查看>>
两个链表的第一个公共结点
查看>>
二叉树的深度
查看>>
MySQL数据库入门(三)
查看>>
MySQL数据库入门(四)
查看>>
关于方法覆盖和属性覆盖的问题?
查看>>
JAVA中ListIterator和Iterator详解
查看>>
目标和
查看>>
跳跃游戏
查看>>
买卖股票的最佳时机 II
查看>>