如何做百度秒收录网站,免费开发网站大全,简易网站,论坛网站开发技术在工作期间会遇到数据库建表的业务#xff0c;经常会使用复制粘帖等操作#xff0c;而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型#xff0c;根据不同的数据需求#xff0c;可以选择不同的字段类型来存储数据。 文章目录 一、字符类型#xff08;Char…在工作期间会遇到数据库建表的业务经常会使用复制粘帖等操作而不清楚数据库的字段类型。本文记录了 Oracle 数据库常见字段类型根据不同的数据需求可以选择不同的字段类型来存储数据。 文章目录 一、字符类型Character1、CHAR定长字符数据类型2、VARCHAR2变长字符数据类型3、NCHAR存储Unicode字符集的固定长度字符串4、NVARCHAR2存储Unicode字符集的可变长度字符串 二、数值类型Numeric1、NUMBER用于存储整型或浮点型数值。2、INTEGER 或 INT 整数类型3、FLOAT浮点数类型4、REAL实数类型 三、日期和时间类型Date and Time1、DATE存储日期和时间精确到秒2、TIMESTAMP时间戳数据类型3、INTERVAL用于表示两个时间点之间的时间间隔 四、二进制大对象类型Binary Large Object1、BLOB存储二进制对象2、CLOB存储大文本数据3、NCLOB存储Unicode字符集的字符大对象 五、其他类型1、RAW存储原始二进制数据2、LONG存储超长字符串数据3、LONG RAW存储可变长度的二进制数据4、ROWID用于唯一标识数据库中的行5、BFILE在数据库外部存储大型二进制对象文件6、BOOLEAN布尔类型7、XML用于存储XML文档数据。8、用户自定义类型User Defined Type 六、数据类型选择的注意事项1、字符类型2、数值类型3、日期和时间类型 一、字符类型Character
1、CHAR定长字符数据类型
存储固定长度的字符串最大长度为2000字节如果存储的字符串长度小于定义的长度Oracle会自动用空格填充至指定长度。
CREATE TABLE example_table (example_column CHAR(10)
);使用 CHAR(n) 是存储长度固定为 n 个字节如果存储的数据长度小于 n则使用空格填充n 的取值范围是 1 到 2000。当插入数据时example_column 列将始终占用 10 个字节的存储空间无论实际存储的字符长度是多少。
2、VARCHAR2变长字符数据类型
存储可变长度的字符串最大长度为4000字节该类型在实际使用中非常灵活因为它只占用实际字符串所需的存储空间而不需要额外的空格填充。
CREATE TABLE example_table (example_column VARCHAR2(20)
);此列仅存储实际输入字符所需的字节数最大不超过 20 个字节最大长度为 n 个字节。n 的取值范围是 1 到 4000。
3、NCHAR存储Unicode字符集的固定长度字符串
存储 Unicode 字符集的固定长度字符串最大长度为2000字节在某些版本中可能为1000字节适用于需要存储国际化字符集的数据。
CREATE TABLE example_table (nchar_column NCHAR(10)
);定义一个长度为 10 的 NCHAR 类型的列用于存储定长的 Unicode 字符数据。存储的字符将根据数据库的国家字符集进行编码通常用于存储多语言数据。
4、NVARCHAR2存储Unicode字符集的可变长度字符串
存储 Unicode 字符集的可变长度字符串最大长度为4000字节在某些版本中可能为1000字节同样适用于国际化字符集的数据存储。
CREATE TABLE example_table (nvarchar2_column NVARCHAR2(20)
);定义一个长度为 20 的 NVARCHAR2 类型的列用于存储变长的 Unicode 字符数据。
二、数值类型Numeric
1、NUMBER用于存储整型或浮点型数值。
用于存储整型或浮点型数值可以指定精度有效数字的位数和小数位数。如果没有指定精度Oracle将使用 38 作为默认精度。
创建时常用 NUMBER(p, s) 存储精度为 p 、小数位数为 s 的数值即 p 表示数字的总长度s 表示小数位数。
CREATE TABLE example_table (numeric_column NUMBER(10, 2)
);可以存储最大长度为 10 位的数字其中包含 2 位小数如 1234567.89。
2、INTEGER 或 INT 整数类型
是NUMBER的一个子集用于存储小的整数等同于 NUMBER(38) 。
CREATE TABLE example_table (integer_column INTEGER
);CREATE TABLE example_table (integer_column INT
);3、FLOAT浮点数类型
是NUMBER的一个特殊表示用于存储双精度浮点数。
CREATE TABLE example_table (float_column FLOAT
);float_column FLOAT存储单精度浮点数。
4、REAL实数类型
同样是NUMBER的一个特殊表示但精度更高可达63位。
CREATE TABLE example_table (real_column REAL
);存储单精度浮点数比 FLOAT 精度稍低是 ANSI SQL 兼容的数据类型。
三、日期和时间类型Date and Time
1、DATE存储日期和时间精确到秒
储日期和时间包括年、月、日、时、分、秒精确到秒范围从公元前 4712 年 1 月 1 日到公元 9999 年 12 月 31 日。Oracle在内部使用7个字节来保存日期数据。
CREATE TABLE example_table (date_column DATE
);2、TIMESTAMP时间戳数据类型
存储日期和时间精确到秒的小数部分可精确到纳秒提供了比 DATE 更高的精度。
CREATE TABLE example_table (timestamp_column TIMESTAMP
);3、INTERVAL用于表示两个时间点之间的时间间隔
用于表示两个时间点之间的时间间隔
CREATE TABLE example_table (interval_column INTERVAL DAY TO SECOND
);存储时间间隔精确到秒范围从天到秒。
四、二进制大对象类型Binary Large Object
1、BLOB存储二进制对象
存储二进制大对象可存储多达 4GB 的二进制数据适用于存储图片、音频、视频等二进制文件。
CREATE TABLE example_table (binary_data_column BLOB
);2、CLOB存储大文本数据
用于存储大量字符数据可存储多达 4GB 的字符数据适用于存储较长的文本如文章、文档等。
CREATE TABLE example_table (large_text_column CLOB
);3、NCLOB存储Unicode字符集的字符大对象
用于存储Unicode字符集的字符大对象数据最大长度同样为4GB。
CREATE TABLE example_table (nclob_column NCLOB
);存储大量的 Unicode 字符数据类似于 CLOB但使用国家字符集。
五、其他类型
1、RAW存储原始二进制数据
用于存储原始二进制数据如多媒体图像、声音等。最大长度为2000字节。
CREATE TABLE example_table (raw_data_column RAW(10)
);存储二进制数据最大长度为 n 字节n 的取值范围是 1 到 2000。常用于存储加密数据或 Oracle 内部使用的数据。
2、LONG存储超长字符串数据
用于存储超长字符串数据最大长度为2GB。但在现代Oracle版本中建议使用 CLOB 或 NCLOB 替代 LONG 类型。
CREATE TABLE example_table (long_column LONG
);定义一个 LONG 类型的列用于存储较长的字符数据最大长度为 2GB但使用时需要注意其性能和功能限制因为它不支持很多字符操作函数。
3、LONG RAW存储可变长度的二进制数据
用于存储可变长度的二进制数据最大长度为2GB。同样在现代Oracle版本中建议使用 BLOB 替代 LONG RAW 类型。
CREATE TABLE example_table (long_raw_column LONG RAW
);存储二进制数据最大长度也是 2GB适合存储一些大型的二进制数据但功能也比较受限例如不支持很多二进制操作函数。
4、ROWID用于唯一标识数据库中的行
用于唯一标识数据库中的行是一个二进制数据类型占用固定的10个字节。
CREATE TABLE example_table (row_id_column ROWID
);存储数据库中行的物理地址用于唯一标识行长度为 18 个字节。
5、BFILE在数据库外部存储大型二进制对象文件
用于在数据库外部存储大型二进制对象文件最大长度为4GB。Oracle可以读取和查询BFILE但不能直接写入。
CREATE TABLE example_table (external_file_column BFILE
);存储指向外部文件的指针文件存储在数据库服务器的文件系统中而不是数据库内部。
6、BOOLEAN布尔类型
布尔类型用于存储真或假两种状态。
CREATE TABLE example_table (boolean_column NUMBER(1) CHECK (boolean_column IN (0, 1))
);由于 Oracle 没有内置的 BOOLEAN 类型使用 NUMBER(1) 并通过 CHECK 约束来模拟布尔值其中 1 表示 TRUE0 表示 FALSE。
7、XML用于存储XML文档数据。
CREATE TABLE example_table (xml_column XMLTYPE
);存储 XML 数据使用 XMLTYPE 数据类型。
8、用户自定义类型User Defined Type
允许用户根据自己的需求定义新的数据类型。
六、数据类型选择的注意事项
1、字符类型
当数据长度固定时使用 CHAR。当数据长度不固定时使用 VARCHAR2 以节省空间。对于大量文本数据使用 CLOB。
2、数值类型
对于整数可使用 INTEGER 或 NUMBER。对于小数使用 NUMBER(p, s)根据精度需求确定 p 和 s 的值。
3、日期和时间类型
对于一般的日期和时间存储使用 DATE。对于需要更高精度的日期和时间使用 TIMESTAMP。