CHAR
char数据类型用于存储字符值。它是一个固定长度的数据类型,也就是说,一旦初始化,我们就不能在执行时改变其大小。因此,它也被称为静态数据类型vSdIFfeR。
它也被用来存储普通字符和字母数字字符。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标准,用来区分Null
和Empty
字符串。然而,在Oracle中,VARCHAR
和VARCHAR2
是完全一样的。
建议不要使用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中,VarChar
和VarChar2
之间没有区别。建议不要使用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
免责声明:以上内容仅代表 个人看法、理解、学习笔记、总结和研究收藏VsDiffer。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。