Oracle—number数据类型[通俗易懂]

Oracle—number数据类型[通俗易懂]https://www.cnblogs.com/oumyye/p/4448656.htmlNUMBER ( precision, scale)实际值数据类型存储值

大家好,又见面了,我是你们的朋友全栈君。

https://www.cnblogs.com/oumyye/p/4448656.html

NUMBER ( precision, scale)

  1.  precision表示数字中的有效位;如果没有指定precision的话,Oracle将使用38作为精度。
  2.  如果scale大于零,表示数字精确到小数点右边的位数;scale默认设置为0;如果scale小于零,Oracle将把该数字取舍到小数点左边的指定位数。
  3.  Precision的取值范围为【1—38】;Scale的取值范围为【-84—127】。
  4.  NUMBER整数部分允许的长度为(precision- scale),无论scale是正数还是负数。
  5.  如果precision小于scale,表示存储的是没有整数的小数。
  6.  Precision表示有效位数,有效数位:从左边第一个不为0的数算起,小数点和负号不计入有效位数;scale表示精确到多少位,指精确到小数点左边或右边多少位(+-决定)
  7.  Number值类型举例:

实际值

数据类型

存储值

1234567.89

Number

1234567.89

1234567.89

Number(8)

1234567

1234567.89

Number(6)

出错

1234567.89

Number(9,1)

1234567.9

1234567.89

Number(9,3)

出错

1234567.89

Number(7,2)

出错

1234567.89

Number(5,-2)

1234600

1234511.89

Number(5,-2)

1234500

1234567.89

Number(5,-4)

1230000

1234567.89

Number(*,1)

1234567.9

0.012

Number(2,3)

0.012

0.23

Number(2,3)

出错

8.  关于precision, scale也可以作如下表述

定点数的精度(p)和刻度(s)遵循以下规则:

1)  当一个数的整数部分的长度 > p-s 时,Oracle就会报错

2)  当一个数的小数部分的长度 > s 时,Oracle就会舍入。

3)  当s(scale)为负数时,Oracle就对小数点左边的s个数字进行舍入。

4)  当s > p 时, p表示小数点后第s位向左最多可以有多少位数字,如果大于p则Oracle报错,小数点后s位向右的数字被舍入

与int的区别

oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。
int类型只能存储整数;
number可以存储浮点数,也可以存储整数;
number(8,1)存储小数位为1位,总长度为8的浮点数,如果小数位数不足,则用0补全;
number(8)存储总长度为8的整数;
int相当于number(22),存储总长度为22的整数。

NUMBER类型的子类

a)  oracle本来就没有int类型,为了与别的数据库兼容,新增了int类型作为number类型的子集。

b)  int类型只能存储整数;number可以存储浮点数,也可以存储整数。

c)  在oracle数据库建表的时候,decimal,numeric不带精度,oracle会自动把它处理成INTEGER;带精度,oracle会自动把它处理成number。

d)  Oracle只用NUMBER(m,n)就可以表示任何复杂的数字数据。

e)  decimal,numeric,int等都为SQL、DB2等数据库的数据类型,ORACLE为了兼容才将其引入;但实际上在ORACLE内部还是以NUMBER的形式将其存入。

number自增

不同于mysql可以直接设置自增,需要建立序列,和触发器。例:

首先,创建一张表:

CREATE TABLE example(

ID Number(4) NOT NULL PRIMARY KEY,

NAME VARCHAR(25));

后,自定义一个序列(sequence):

复制代码
CREATE SEQUENCE example_sequence

INCREMENT BY 1 -- 每次加几个

START WITH 1 -- 从1开始计数

NOMAXVALUE -- 不设置最大值

NOCYCLE -- 一直累加,不循环

NOCACHE -- 不建缓冲区
复制代码

再创建一个触发器:

CREATE OR REPLACE TRIGGER example_t
BEFORE INSERT ON example
FOR EACH ROW
BEGIN
SELECT example_sequence.nextval INTO :new.id FROM dual; 
END;

测试一下,插入数据

insert into example(name) values('张三');

insert into example(id, name) values(111,'李四');

输入查询语句:

select t.* from EXAMPLE t

结果是:

id name
1 张三
111 李四
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155048.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月3日 下午10:46
下一篇 2022年7月3日 下午11:00


相关推荐

  • 基础版的音频功放电路(A类功放电路、B类功放电路、C类功放电路、D类功放电路、G类功放电路、H类功放电路、K类功放电路、T类功放电路)[通俗易懂]

    基础版的音频功放电路(A类功放电路、B类功放电路、C类功放电路、D类功放电路、G类功放电路、H类功放电路、K类功放电路、T类功放电路)[通俗易懂]  作为硬件工程师,特别是做纯粹模拟电路、应用于音频功放的工程师,对于A类,B类,AB类,D类,G类,H类,T类功放应该特别熟悉。大多数工程师或许只知道其中的一部分、或者知道大概,为了让更多的工程师掌握更加详尽的音频功放知识,下文对以上说的音频功放做详细的说明。  引用地址:http://www.eepw.com.cn/article/201611/340477.htm  功放,顾名思义,就是功率放大的缩写。与电压或者电流放大来说,功放要求获得一定的、不失真的功率,一般在大信号状态下工作,因此,功放电路

    2022年6月2日
    48
  • restful 幂等性(什么是幂次法则)

    理解RESTful的幂等性,并且设计符合幂等规范的高质量RESTfulAPI。怎么理解幂等性HTTP幂等方法,是指无论调用多少次都不会有不同结果的HTTP方法。不管你调用一次,还是调用一百次,一千次,结果都是相同的。还是以之前的博文的例子为例。【GET】/users#查询用户信息列表【GET】/users/1…

    2022年4月10日
    72
  • qtabbar设置不同宽度_华为最小宽度默认

    qtabbar设置不同宽度_华为最小宽度默认随手记。因为自己搜没搜到。一行代码搞定。我是加在resizeEvent函数中的。ui.tabWidgetCentral->tabBar()->setMaximumWidth(width);修改后效果原效果

    2026年2月21日
    3
  • java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]

    java pfx 证书_java 证书 .cer 和 .pfx[通俗易懂]作为文件形式存在的证书一般有这几种格式:1.带有私钥的证书由PublicKeyCryptographyStandards#12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。2.二进制编码的证书证书中没有私钥,DER编码二进制格式的证书文件,以cer作为证书文件后缀名。3.Base64编码的证书证书中没有私钥,BASE64编码格式的证书文件…

    2022年5月27日
    75
  • SIP 服务器

    SIP 服务器所谓 SIP 服务器指的是接受 SIP 请求并对其作出响应的应用程序 SIP 服务器不应与 UAS 或协议本身的 client server 性质混淆 后者从客户端 请求发起方 和服务端 对请求生成应答一方 的操作角度进行描述 SIP 服务器是另一种类型的实例 这里讨论的 SIP 服务器是逻辑实体 实际的 SIP 服务器实现可以包含多种服务器类型 或者在不同条件下有不同操作充当不同的服务实体 因为服务器对 UA 提供服务和特性 所以它们必须同时支持 TCP 和 UDP 传输 下图显示了 UA 服务器和定位服务间的交互关系 注意 SI

    2026年3月20日
    2
  • html超级链接生成器,超链接地址生成器

    html超级链接生成器,超链接地址生成器超链接生成器是一款快速方便,简单易用的超链接地址生成器。它可以把以纯文本形式存在的超链接地址转换成真正的超级链接,方便你点击超链接来打开网址,或者打开IE快捷菜单等。软件特点:①界面简介,操作方便,速度快;②可以从浏览器拖放链接到窗口生成URL,或从资源管理器拖放文件到窗口生成URL;③可以批量导入文件路径来生成URL;④可以扫描某个目录下的所有文件生成URL。⑤在IE右键快捷菜单中增加生成超链…

    2022年5月21日
    70

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号