Какова разница между полями данных TEXT и VARCHAR? - PullRequest
8 голосов
/ 17 августа 2010

У меня следующие недоразумения -
1. Какой тип данных используется для большего объема хранилища данных
2. Когда мы указываем varcha (100), то эти 100 представляют 100 characters или 100 bits or bytes

Ответы [ 5 ]

4 голосов
/ 17 августа 2010

На SQL Server

varchar (100) = 100 символов ascii и 102 байта

nvarchar (100) = 100 символов unicode / ascii и 202 байта памяти

text и ntext занимают до 2 ГБ, но не рекомендуются (по сравнению с SQL Server 2005), вы должны использовать varchar (max) и nvarchar (max), которые также имеют размер до 2 ГБ вместо

2 голосов
/ 17 августа 2010

При использовании MySQL разница в основном связана с требованиями к хранилищу :

  • VARCHAR: L + 1 байтов, если значения столбца требуют 0 -255 байтов, L + 2 байтов, если значения могут требовать более 255 байтов

  • TEXT: L + 2 байтов, где L < 2^16

где L - фактический размер записи

2 голосов
/ 17 августа 2010

TEXT будет хранить до 64K - MySQL (например) также предоставляет варианты: TINYTEXT (256 байт), MEDIUMTEXT (16 МБ) и LONGTEXT (4 ГБ).

Столбец VARCHAR (100) будет содержать до 100 символов текста. Вы можете использовать VARBINARY для двоичных данных, и в этом случае поле VARBINARY (100) будет содержать до 100 байтов.

1 голос
/ 17 августа 2010

Предполагается, что вы говорите о MS SQL Server:

1) varchar(max): varchar(max) является заменой для TEXT

2) varchar(100) = 100 символов (однобайтный asciiсимволы)

(тогда как nvarchar(100) = 100 символов (двухбайтовые символы Юникода))

Ссылка: char и varchar (Transact-SQL)

[Только найден возможный дубликат: ms sql server;VARCHAR (МАКС) против ТЕКСТА ]

0 голосов
/ 17 августа 2010

Тип данных TEXT ограничен 4000 символами, где в новом типе данных Varchar (max) предполагается хранить максимальную длину символов или указанную вами длину

Для получения дополнительной информации установите этот флажок

http://databases.about.com/od/sqlserver/a/char_string.htm

...