CHAR

char数据类型用于存储字符值。它是一个固定长度的数据类型,也就是说,一旦初始化,我们就不能在执行时改变其大小。因此,它也被称为静态数据类型。
它也被用来存储普通字符和字母数字字符。char数据类型可以存储一个最大长度为2000字节的字符串。同时,每一个字符都有一个字节被存储在内存中。由于大小是固定的,不能改变,这将导致内存的浪费。
外汇:如果在char(10)中存储5个字符,那么这5个字节将被oracle存储,剩下的5个字节将被填充到右边,导致内存浪费,如文章后半部分的例子所示。
.
语法如下:

char_name CHAR(length BYTE)
char_name CHAR(length CHAR)

注意:如果没有明确指定字符的大小,那么ORACLE将默认分配1个字节,就像这样:

// Assigns 1 byte
char_name CHAR

VARCHAR

VarChar数据类型用于存储字符值。它是一种可变长度的数据类型,也就是说,可以在执行时改变字符的大小。因此,它也被称为动态数据类型。
它也被用来存储普通字符和字母数字字符。VarChar数据类型可以存储一个最大长度为4000字节的字符串。而且,每一个字符都有一个字节被存储在内存中。

VARCHAR是一个ANSI标准,用来区分NullEmpty字符串。然而,在Oracle中,VARCHARVARCHAR2是完全一样的。
建议不要使用VARCHAR,因为Oracle可能会在不久的将来改变其用法。

语法如下:

char_name VARCHAR(length BYTE)
char_name VARCHAR(length CHAR)

3. VARCHAR2

VARCHAR2与oracle数据库中的VARCHAR相同。主要的区别是,VARCHAR是ANSI标准,而VARCHAR2是Oracle标准。
VarChar2数据类型是用来存储字符值的。它是一个可变长度的数据类型,也就是说,可以在执行时改变字符变量的大小。因此,它也被称为动态数据类型。
它也被用来存储普通字符和字母数字字符。VARCHAR2数据类型可以存储一个最大长度为4000字节的字符串。同时,每一个字符都有一个字节被存储在内存中。由于它是一个动态数据类型,内存不会被浪费。

注意:如果在varchar2(10)中存储5个字符,那么Oracle将只存储5个字节,类似于VARCHAR,而不是像CHAR那样存储10个字节。

语法与VARCHAR相似 -

char_name VARCHAR2(length BYTE)
char_name VARCHAR2(length CHAR)

// allocates length bytes of character
char_name VARCHAR2(length)

Oracle中char、varchar和VARCHAR2之间的区别:

编号 Char VarChar/VarChar2
1 Char代表 “字符” VarChar/VarChar2代表可变字符
2 它用于存储固定长度的字符串 它用于存储可变长度的字符串。
3 它的最大尺寸为2000字节 它的最大容量为4000字节。
4 Char将把空格垫到右边 VarChar/VarChar2以填补在声明过程中指定的长度。
5 在声明的时候不需要指定大小。 它的默认值是1字节,需要在声明时指定大小。
6 它是静态数据类型(即固定长度) 它是动态数据类型(即可变长度)。
7 它可能导致内存的浪费 它能有效地管理内存。
8 它比VarChar/VarChar2快50% 与Char相比,它相对慢一些。

注:在Oracle中,VarCharVarChar2之间没有区别。建议不要使用VarChar来存储数据,因为它是为将来存储其他类型的变量而保留的。因此,总是使用VarChar2来代替VarChar。

因此,当字符串的长度是固定的并且将来不会改变时,建议使用Char数据类型。如果字符串的长度不固定,那么最好使用VarChar2。

Oracle中char、varchar和VARCHAR2的区别

欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:Oracle中char、varchar和VARCHAR2的区别
本文链接:https://www.vsdiffer.com/vs/difference-between-char-varchar-and-varchar2-in-oracle.html
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。