常见数据类型

目录

数据类型

字符串

char

nchar

varchar

varchar2

nvarchar

数字

number

integer

binary_float

binary_double

float

日期

date

timestamp

大文本数据

大对象数据


Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645

数据类型

ORACLE基本数据类型(亦叫内置数据类型 built-in datatypes)可以按类型分为:字符串类型、数字类型、日期类型、LOB类型、LONG RAW& RAW类型、ROWID & UROWID类型。

在讲叙字符串类型前,先要讲一下编码。字符串类型的数据可依编码方式分成数据库字符集(CHAR/VARCHAR2/CLOB/LONG)和国际字符集(NCHAR/NVARCHAR2/NCLOB)两种。数据库中的字符串数据都通过字符集将字符转换为数字后(二进制),才存储到数据块中。通过不同的编码集转换,即便是相同的字符,也可能会转换成不同的二进制编码。这也是产生乱码的原因。数据库的编码格式一般是在创建数据库时指定的。当然也可以修改数据库的编码。

查看数据库视图所包含的数据类型:SELECT * FROM DBA_TYPES WHERE OWNER IS NULL.具体细节情况参见Oracle® Database SQL Language Quick Reference 10/11g 或官方文档

表本质上属于数据集合操作,那么数据的集合里面必然有要保存的集合类型。

在数据库开发的过程中,每一个数据库都有许多自己支持的数据类型,但是不管扩展了多少种数据类型,常用的类型有以下几种

字符串

字符串数据类型还可以依据存储空间分为固定长度类型(CHAR/NCHAR) 和可变长度类型(VARCHAR2/NVARCHAR2)两种

所谓固定长度:是指虽然输入的字段值小于该字段的限制长度,但是实际存储数据时,会先自动向右补足空格后,才将字段值的内容存储到数据块中

这种方式虽然比较浪费空间,但是存储效率较可变长度类型要好。同时还能减少数据行迁移情况发生。

所谓可变长度:是指当输入的字段值小于该字段的限制长度时,直接将字段值的内容存储到数据块中,而不会补上空白,这样可以节省数据块空间

char

CHAR类型,定长字符串,会用空格填充来达到其最大长度。非NULL的CHAR(12)总是包含12字节信息。CHAR字段最多可以存储2,000字节的信息。如果创建表时,不指定CHAR长度,则默认为1。另外你可以指定它存储字节或字符,例如 CHAR(12 BYTYE) CHAR(12 CHAR)

nchar

这是一个包含UNICODE格式数据的定长字符串。NCHAR字段最多可以存储2,000字节的信息。它的最大长度取决于国家字符集。

varchar

不要使用VARCHAR数据类型。使用VARCHAR2数据类型。虽然VARCHAR数据类型目前是VARCHAR2的同义词,VARCHAR数据类型将计划被重新定义为一个单独的数据类型用于可变长度的字符串相比,具有不同的比较语义

varchar2

变长字符串,与CHAR类型不同,它不会使用空格填充至最大长度。VARCHAR2最多可以存储4,000字节的信息

我们使用的这个,使用 varchar2描述(其他数据库使用 varchar),200 个字符以内的都使用此类型,例如姓名、地址、邮政编码、电话、性别

nvarchar

这是一个包含UNICODE格式数据的变长字符串。 NVARCHAR2最多可以存储4,000字节的信息

数字

number

在 Oracle 中使用 number来描述数字,如果描述小数使用"number(m,n)",其中n 为小数位,而m-n 为整数位。

integer

INTEGER是NUMBER的子类型,它等同于NUMBER(38,0),用来存储整数。若插入、更新的数值有小数,则会被四舍五入。

binary_float

BINARY_FLOAT 是 32 位、 单精度浮点数字数据类型。可以支持至少6位精度,每个 BINARY_FLOAT 的值需要 5 个字节,包括长度字节

binary_double

BINARY_DOUBLE 是为 64 位,双精度浮点数字数据类型。每个 BINARY_DOUBLE 的值需要 9 个字节,包括长度字节

float

FLOAT类型也是NUMBER的子类型。

Float(n),数 n 指示位的精度,可以存储的值的数目。N 值的范围可以从 1 到 126。若要从二进制转换为十进制的精度,请将 n 乘以 0.30103。要从十进制转换为二进制的精度,请用 3.32193 乘小数精度。126 位二进制精度的最大值是大约相当于 38 位小数精度

日期

date

DATE是最常用的数据类型,日期数据类型存储日期和时间信息。虽然可以用字符或数字类型表示日期和时间信息,但是日期数据类型具有特殊关联的属性。为每个日期值,Oracle 存储以下信息: 世纪、 年、 月、 日期、 小时、 分钟和秒。一般占用7个字节的存储空间。

使用 date是最为常见的做法之一,但是在 Oracle 里面 date包含有日期和时间,其他的数据库里面 date可能只包含日期,datetime 才表示日期时间

timestamp

这是一个7字节或12字节的定宽日期/时间数据类型。它与DATE数据类型不同,因为TIMESTAMP可以包含小数秒,带小数秒的TIMESTAMP在小数点右边最多可以保留9位

大文本数据

使用 CLOB 描述,最多可以保存 4GB 的文字信息

大对象数据

使用 BLOB 描述,保存图片、音乐、电影、文字,最多可以保存 4GB 的信息

从实际开发来说,比较常使用的数据类型是 varchar2、number、date、clob类型

相关推荐
chenglin0162 小时前
ES_索引的操作
大数据·数据库·elasticsearch
共享家95273 小时前
MYSQL库及表的操作
数据库
想回家的一天5 小时前
Go1.25的源码分析-src/runtime/runtime1.go(GMP)
数据库·redis·缓存
阿里云大数据AI技术6 小时前
鹰角网络基于阿里云EMR Serverless StarRocks的实时分析工程实践
数据库·数据分析
久笙&6 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python·架构
武昌库里写JAVA6 小时前
使用 Java 开发 Android 应用:Kotlin 与 Java 的混合编程
java·vue.js·spring boot·sql·学习
码luffyliu6 小时前
MySQL:MVCC机制及其在Java秋招中的高频考点
java·数据库·mysql·事务·并发·mvcc
水涵幽树6 小时前
MySQL 时间筛选避坑指南:为什么格式化字符串比较会出错?
数据库·后端·sql·mysql·database
PythonicCC6 小时前
Django中的MVC和MVT模式
数据库·django·mvc
funfan05177 小时前
在IDEA中DEBUG调试时查看MyBatis-Plus动态生成的SQL语句
sql·intellij-idea·mybatis