TEXT和VARCHAR数据字段之间的区别是什么?

TEXT和VARCHAR数据字段之间的区别是什么?,text,types,varchar,Text,Types,Varchar,我有以下困惑- 1.哪个数据类型用于更大数量的数据存储 2.当我们指定varcha(100)时,这100表示100个字符或100位或字节假设您谈论的是MS SQL Server: 1) varchar(max):varchar(max)是文本的替代品 2) varchar(100)=100个字符(单字节ascii字符) (而nvarchar(100)=100个字符(双字节unicode字符)) 参考: [刚刚找到一个可能的副本:文本将最多存储64K-MySQL(例如)也提供变体:TINYTEXT

我有以下困惑-
1.哪个数据类型用于更大数量的数据存储

2.当我们指定varcha(100)时,这100表示
100个字符
100位或字节

假设您谈论的是MS SQL Server:

1)
varchar(max)
varchar(max)
是文本的替代品

2)
varchar(100)
=100个字符(单字节ascii字符)

(而
nvarchar(100)
=100个字符(双字节unicode字符))

参考:


[刚刚找到一个可能的副本:

文本将最多存储64K-MySQL(例如)也提供变体:TINYTEXT(256字节)、MEDIUMTEXT(16MB)和LONGTEXT(4GB)

VARCHAR(100)列最多可容纳100个字符的文本。您可以将VARBINARY用于二进制数据,在这种情况下,VARBINARY(100)字段最多可容纳100个字节。

在SQL Server上

varchar(100)=100个ascii字符和102个字节

nvarchar(100)=100个unicode/ascii字符和202字节的存储空间


text和ntext的容量高达2GB,但不推荐使用(从sql server 2005开始),您应该使用varchar(max)和nvarchar(max),这两种格式的容量也都可以高达2GB,而数据类型文本限制为4000个字符,在新的数据类型中,varchar(max)用于存储字符的最大长度或指定的长度

有关更多信息,请查看此


如果使用
MySQL
则差异主要与以下方面有关:

  • VARCHAR
    L+1
    字节,如果列值需要0-255字节,
    L+2
    字节,如果值可能需要超过255字节

  • TEXT
    L+2
    字节,其中
    L<2^16


其中,
L
是条目的实际大小,正如您从答案中看到的,这在很大程度上取决于您使用的数据库服务器-例如,mySQL的VARCHAR与MSSQL的VARCHART非常不同,
VARCHAR(100)
的存储要求不是100字节,而是102字节:。是的,我知道2个字节用于表示开始和结束位置,这也是为什么使用char(2)而不是varchar(2)。谢谢,更新了答案事实上不,2个字节用于存储
VARCHAR
数组的大小,而不是作为起始位置。如果列的大小存在显著差异,则不使用
CHAR
而使用
VARCHAR
,因为与
VARCHAR
相比,这将浪费空间。如果有超过1个VARCHAR列,则每行还需要2字节的开销来保持可变列的计数。我给出了一个char(2)vs varchar(2)的例子,而不是char(50)vs varchar(50),因为在这种情况下,如果您只使用25个字节,那么您会希望使用varchar