Char和Varchar

Anonim

两者都是许多编程语言和数据库系统中的数据类型,其中'char'表示字符,'varchar'表示变量字符。 C中的Char表示用于存储字符串值的字符类型,主要是UTF-8编码的字符和整数。另一方面,Varchar是一种数据类型,它可以包含任何类型的不确定长度的数据。 Varchar是指数据库管理系统中字段的数据类型。虽然它们都可以存储最大长度为8,000个字符的字符串值,但char需要比varchar更多的存储空间。从技术上讲,它们都用于存储相同类型的数据,但它们的存储和检索方式不同。我们来看看他们在细节上的差异。

Char是什么?

Char是一种固定长度的数据类型,用于存储非Unicode字符,因此是名称(字符的缩写)。它为每个字符占用一个字节的空间,这些字符被编码为数字 - 来自ASCII编码的字符。 char类型也可用于声明小整数。要声明字符变量,使用关键字'char',这意味着单个字符存储在一个字节中。

与整数类型一样,char可以是有符号或无符号的。它可以保存-128到127之间的signed char值,并且根据体系结构大小,它也可以是无符号的,保持值范围从0到255.当存储char值时,它们用空格填充到指定的长度。检索后删除尾随空格。

例如 - 如果声明char(7)数据类型的变量,则无论是存储1个字符还是7个字符,它总是需要7个字节的数据,这意味着您可以在列中存储最多7个字符。

什么是Varchar?

顾名思义,Varchar是一种可变长度数据类型,它可以包含长度从0到65,535不等的任何类型的数据。 Varchar字段可以存储任何大小的值,直到某个限制,具体取决于数据库。它可以用编程语言或数据库级别定义。 varchar字段的大小可以是从零到最大声明字段长度的任何值。

要声明变量字符,请使用'varchar'关键字。 Varchar采用可变空间,这意味着它将仅使用等于字符数的字节数。它有助于避免浪费空间,因为它只利用了弦的大小所需的空间。在某些编程语言和数据库系统中,任何额外的空间都会自动从数据库中删除。

例如 - 如果声明varchar(10)的变量,它将使用等于字符数的字节数。因此,如果您只存储一个字符,那么它只需要一个字节,如果您存储10个字符,则需要10个字节,从而避免浪费数据库空间。

Char和Varchar之间的区别

  1. 数据类型

'Char'是固定长度数据类型,用于存储固定长度的字符串值,而'Varchar'是可变长度数据类型,用于存储可变长度字母数字数据。

  1. 存储大小

字符值的存储大小等于您在创建表时声明的此列的最大大小。另一方面,varchar值的存储大小是输入数据的实际长度,而不是此列的最大大小。

  1. 数据条目

当列中的数据条目预期大小相同时,可以使用char,而相反,当列中的数据条目的大小不同时,可以使用varchar。

  1. 内存分配

Char使用静态内存分配,而varchar使用动态内存分配

  1. 长度

char变量的长度可以是0到255之间的任何值,而varchar变量的长度范围是0到65,535。

  1. 应用

数据条目在char中是一致的,用于存储电话号码等数据,而varchar用于存储地址等不同的数据。

Char vs. Varchar

烧焦 VARCHAR
用于存储固定长度的字符串值。 用于存储可变长度的字母数字数据。
长度从0到255不等。 长度从0到65,535不等。
每个字符占用1个字节用于存储。 每个字符占用1个字节,加上1或2个额外字节用于存储长度信息。
char的存储大小与声明的相同。 varchar的存储大小取决于存储的特定字符串。
使用静态内存分配。 使用动态内存分配。
当变量的长度已知时,应使用Char。 仅当变量的长度未知时才应使用Varchar。
它只接受字符。 它接受字符和数字。
它比Varchar快50%。 它比Char慢。
char值的存储大小等于列的最大大小。 varchar值的存储大小等于输入数据的实际长度,而不是列的最大大小。

摘要

  • “Char”和“Varchar”都是编程语言和数据库系统中的数据类型,它们在功能和技术性方面具有一些共同特征。但是,它们的存储和检索方式大不相同。
  • 虽然char实际上是指字符,但varchar指的是变量字符。顾名思义,char是固定长度的数据类型,而varchar是可变长度的数据类型。
  • Char每个字符最多占用1个字节,而varchar每个字符最多占用1个字节,另外还有1或2个字节来存储长度信息。对于char,长度从0到255不等,对于varchar,它可以是0到65,535之间的任何值。
  • 由于char是固定长度的,因此字段中的任何剩余空间都用空白填充。另一方面,Varchar是可变长度的,因此它只保存您分配给它的字符。
  • 当值存储在“char”字段中时,剩余字符用空格填充,而当提供的数据少于指定长度时,“varchar”不会添加额外的空格。