关于oracle中的sql数据类型

简介: 数据类型对于每一种编程语言而言都是数据存储的基础,对于编程语言的实现功能而言也是一个标尺,有些编程语言可能数据类型很丰富,比如java,c,在数据计算方面的支持很全面,有些编程比较精简,更侧重于实现特定的功能,数据类型也就简单得多。
数据类型对于每一种编程语言而言都是数据存储的基础,对于编程语言的实现功能而言也是一个标尺,有些编程语言可能数据类型很丰富,比如java,c,在数据计算方面的支持很全面,有些编程比较精简,更侧重于实现特定的功能,数据类型也就简单得多。比如说shell。
对于oracle中的sql来说,数据类型的支持非常全面,无论是数据计算还是复杂的业务逻辑封装需要,数据类型的支持都是内置和可扩展的。可以根据需要来选择。
目前oracle的数据类型分类大体有如下的结构。
用户自定义类型,基本上都是由type来实现,可以根据需要来灵活定制。
内置数据类型是主要的应用方向。大体分为了标量,集合,关系型

关于自定义数据类型有必要多说一些。
一个简单的例子如下,我们创建测试表test_datatype来简单的说明。

create table test_datatype(id number,name varchar2(100),memo varchar2(1000));

create or replace type t_test_datatype as
object
(
id number,
name varchar2(100)
)
/

create or replace type tt_test_datatype as table of t_test_datatype
/

create table new_test_datatype
(
object_id number,
other_columns tt_test_datatype
)
nested table other_columns store as other_columns_nt
/

而对于内置数据类型,简单的总结和描述总结成了表格。

数据类型 长度 说明
CHAR(n BYTE/CHAR) 默认1字节,n值最大为2000 末尾填充空格以达到指定长度,超过最大长度报错。默认指定长度为字节数,字符长度可以从1字节到四字节。
NCHAR(n) 默认1字符,最大存储内容2000字节 末尾填充空格以达到指定长度,n为Unicode字符数。默认为1字节。
NVARCHAR2(n) 最大长度必须指定,最大存储内容4000字节 变长类型。n为Unicode字符数
VARCHAR2(n BYTE/CHAR) 最大长度必须指定,至少为1字节或者1字符,n值最大为4000 变长类型。超过最大长度报错。默认存储的是长度为0的字符串。



NUMBER(p[,s]) 1-22字节。 存储定点数,值的绝对值范围为1.0 x 10 -130至1.0 x 10 126。值大于等于1.0 x 10 126时报错。p为有意义的10进制位数,正值s为小数位数,负值s表示四舍五入到小数点左部多少位。
P取值范围1到38
S取值范围-84到127
BINARY_FLOAT 5字节,其中有一长度字节。 32位单精度浮点数类型。
符号位1位,指数位8位,尾数位23位。
BINARY_DOUBLE 9字节,其中有一长度字节。 64位双精度浮点数类型。

对于一些数据样例,总结如下:
输入数据 数据类型 存储结果
7,456,123.89 NUMBER 7456123.89
7,456,123.89 NUMBER(*,1) 7456123.9
7,456,123.89 NUMBER(9) 7456124
7,456,123.89 NUMBER(9,2) 7456123.89
7,456,123.89 NUMBER(9,1) 7456123.9
7,456,123.89 NUMBER(6) (not accepted, exceeds precision)
7,456,123.89 NUMBER(7,-2) 7456100
目录
相关文章
|
3月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
简介:本文整理自阿里云高级技术专家李麟在Flink Forward Asia 2025新加坡站的分享,介绍了Flink 2.1 SQL在实时数据处理与AI融合方面的关键进展,包括AI函数集成、Join优化及未来发展方向,助力构建高效实时AI管道。
777 43
|
3月前
|
SQL 人工智能 JSON
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
本文整理自阿里云的高级技术专家、Apache Flink PMC 成员李麟老师在 Flink Forward Asia 2025 新加坡[1]站 —— 实时 AI 专场中的分享。将带来关于 Flink 2.1 版本中 SQL 在实时数据处理和 AI 方面进展的话题。
278 0
Flink 2.1 SQL:解锁实时数据与AI集成,实现可扩展流处理
|
4月前
|
SQL
SQL如何只让特定列中只显示一行数据
SQL如何只让特定列中只显示一行数据
|
2月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
278 8
|
4月前
|
SQL
SQL中如何删除指定查询出来的数据
SQL中如何删除指定查询出来的数据
|
4月前
|
SQL 关系型数据库 MySQL
SQL如何对不同表的数据进行更新
本文介绍了如何将表A的Col1数据更新到表B的Col1中,分别提供了Microsoft SQL和MySQL的实现方法,并探讨了多表合并后更新的优化方式,如使用MERGE语句提升效率。适用于数据库数据同步与批量更新场景。
|
6月前
|
SQL 数据挖掘 关系型数据库
【SQL 周周练】一千条数据需要做一天,怎么用 SQL 处理电表数据(如何动态构造自然月)
题目来自于某位发帖人在某 Excel 论坛的求助,他需要将电表缴费数据按照缴费区间拆开后再按月份汇总。当时用手工处理数据,自称一千条数据就需要处理一天。我将这个问题转化为 SQL 题目。
236 12
|
5月前
|
SQL DataWorks 数据管理
SQL血缘分析实战!数据人必会的3大救命场景
1. 开源工具:Apache Atlas(元数据管理)、Spline(血缘追踪) 2. 企业级方案:阿里DataWorks血缘分析、腾讯云CDW血缘引擎 3. 自研技巧:在ETL脚本中植入版本水印,用注释记录业务逻辑变更 📌 重点总结:
|
6月前
|
SQL 数据采集 资源调度
【SQL 周周练】爬取短视频发现数据缺失,如何用 SQL 填充
爬虫爬取抖音和快手的短视频数据时,如果遇到数据缺失的情况,如何使用 SQL 语句完成数据的补全。
162 5
|
7月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
279 6

推荐镜像

更多
下一篇
oss云网关配置