Oracle number类型的语法和用法
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 要快很多。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

InnoDB的全文搜索功能非常强大,能够显着提高数据库查询效率和处理大量文本数据的能力。 1)InnoDB通过倒排索引实现全文搜索,支持基本和高级搜索查询。 2)使用MATCH和AGAINST关键字进行搜索,支持布尔模式和短语搜索。 3)优化方法包括使用分词技术、定期重建索引和调整缓存大小,以提升性能和准确性。

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。
