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
字节,如果列值需要0-255字节,L+1
字节,如果值可能需要超过255字节L+2
: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