热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oraclenumber类型的语法和用法

OracleNUMBER类型对大多数应用来讲都是最佳的选择。不过,这个类型会带来一些性能影响。OracleNUMBER类型是一种软件数据类型,

Oracle NUMBER类型对大多数应用来讲都是最佳的选择。不过,这个类型会带来一些性能影响。Oracle NUMBER类型是一种软件数据类型,

Oracle number类型的语法很简单,就是:

number(p,s)

p,s都是可选的,假如都不填,p默认为38,s默认为-48~127。

1. 精度(precision),或总位数。默认情况下,精度为38位,取值范围是1~38之间。也可以用字符*表示38。

2. 小数位置(scale),或小数点右边的位数。小数位数的合法值为-48~127,其默认值取决于是否指定了精度。如果没有知道精度,小数位数则默认有最大的取值区间。如果指定了精度,小数位数默认为0(小数点右边一位都没有)。例如,定义为NUMBER的列会存储浮点数(有小数),而NUMBER(38)只存储整数数据(没有小数),因为在第二种情况下小数位数默认为0.

如下SQL语句:

create table t ( msg varchar2(12.), num_col number(5,2) );

insert into t (msg,num_col) values ( '123.456', 123.456 );//执行成功,保存的是123.46

insert into t (msg,num_col) values ( '1234', 1234 );//执行失败,要保留2位小数,,那么整数位最多3位,现在是4位。

如果scale是负数怎么样,表示左边整数位舍入几位:

create table t ( msg varchar2(12.), num_col number(5,-2) );

insert into t (msg,num_col) values ( '123.45', 123.45 );//执行成功,保存的是100

insert into t (msg,num_col) values ( '123.456', 123.456 );//执行成功,保存的是100

其他数据类型:

1. NUMERIC(p,s):完全映射至NUMBER(p,s)。如果p未指定,则默认为38.

2. DECIMAL(p,s)或DEC(p,s):完全映射至NUMBER(p,s)。如果p为指定,则默认为38.

3. INTEGER或INT:完全映射至NUMBER(38)类型。

4. SMALLINT:完全映射至NUMBER(38)类型。

5. FLOAT(b):映射至NUMBER类型。

6. DOUBLE PRECISION:映射至NUMBER类型。

7. REAL:映射至NUMBER类型。

性能考虑:

一般而言,Oracle NUMBER类型对大多数应用来讲都是最佳的选择。不过,这个类型会带来一些性能影响。Oracle NUMBER类型是一种软件数据类型,在Oracle软件本身中实现。我们不能使用固有硬件操作将两个NUMBER类型相加,这要在软件中模拟。不过,浮点数没有这种实现。将两个浮点数相加时,Oracle会使用硬件来执行运算。

换而言之,将一些列的number列相加,没有将一系列float列相加来得快。因为float列的精度低很多,一般是6~12位。

比如:select sum(ln(cast( num_type as binary_double ) )) from t

比:select sum(ln(cast( num_type) )) from t 要快很多。

linux

推荐阅读
  • 本文介绍了如何在 SQL Server 2005 中创建和使用数据库快照,包括创建数据库、数据表、插入数据、创建快照、查询快照数据以及使用快照进行数据恢复等操作。 ... [详细]
  • 8个IDC大数据基础定义解析丨IDC
    本文针对IDC数据行业相关名词术语进行解析,分为4组相关概念,希望大家读完 ... [详细]
  • PostgreSQL 12 版本预览:分离 max_wal_senders 和 max_connections 的连接槽处理
    本文介绍了 PostgreSQL 12 中的一项重要改进,即 max_wal_senders 参数不再计入 max_connections,从而解决了流复制连接槽不足的问题。 ... [详细]
  • MySQL 5.7 服务端在 Windows 上的安装与配置
    本文详细介绍了在 Windows 系统上安装和配置 MySQL 5.7 服务端的方法,包括 my.ini 配置文件的设置、初始化数据库、启动服务以及设置用户权限等步骤。 ... [详细]
  • 本文介绍了如何在 SQL Server (MSSQL) 数据库中更新 XML 列中的属性和节点内容。 ... [详细]
  • 图数据库与传统数仓实现联邦查询使用CYPHER实现从关系数据库过滤时间序列指标一、MySQL得到研报实体在Oracle中的唯一ID二、Oracle中过滤时间序列数据三、CYPHER ... [详细]
  • 大数据领域的职业路径与角色解析
    本文将深入探讨大数据领域的各种职业和工作角色,帮助读者全面了解大数据行业的需求、市场趋势,以及从入门到高级专业人士的职业发展路径。文章还将详细介绍不同公司对大数据人才的需求,并解析各岗位的具体职责、所需技能和经验。 ... [详细]
  • Java毕业设计项目:“传情旧物”网站(含源码与数据库)
    本项目介绍了如何配置和运行“传情旧物”网站,包括所需的技术栈、环境配置以及具体的操作步骤。 ... [详细]
  • 本文为初学者提供了一条清晰的学习路线,帮助他们逐步成长为优秀的Web开发人员。通过十个关键步骤,涵盖从基础到高级的各个方面,确保每位学习者都能找到适合自己的学习方向。 ... [详细]
  • 在尝试将 mysqldump 文件加载到新的 MySQL 服务器时,遇到因使用保留关键字 'table' 导致的语法错误。 ... [详细]
  • 阿里面试题解析:分库分表后的无限扩容瓶颈与解决方案
    本文探讨了在分布式系统中,分库分表后的无限扩容问题及其解决方案。通过分析不同阶段的服务架构演变,提出了单元化作为解决数据库连接数过多的有效方法。 ... [详细]
  • 本文详细介绍了如何将Spring框架与Hibernate ORM框架进行集成,包括配置文件的设置和数据持久化操作的实现。 ... [详细]
  • 如何将两个具有相同主键的Excel表格合并
    本文介绍如何将两个具有相同主键的Excel表格进行合并,通过左连接的方式将表2的数据插入到表1中。具体步骤包括在表1中添加新的列、使用VLOOKUP函数进行数据匹配,以及通过SQL语句实现数据库中的表连接。 ... [详细]
  • 解决Win7安装SQL Server时NetFx3启动失败的问题
    在使用Win7系统安装SQL Server时,部分用户可能会遇到“启动Windows功能NetFx3时出错”的提示。本文将详细介绍这一问题的原因及解决方法。 ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
author-avatar
杀手也热血_949
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有