В чем разница между char, nchar, varchar и nvarchar в SQL Server?

Запуск файлов .html как php неожиданно прекратился в моем файле .htaccess.

Поддержка Godaddy заставила меня изменить его на:

AddHandler application/x-httpd-lsphp .html
579
задан PeterAllenWebb 27 June 2013 в 05:43
поделиться

8 ответов

Только разрешить... или подвести итог...

  • nchar и nvarchar может сохранить символы Unicode .
  • char и varchar не может сохранить символы Unicode .
  • char и nchar фиксированная длина , которая будет резервное пространство памяти для количества символов, которые Вы определяете, не израсходовали ли Вы все то пространство.
  • varchar и nvarchar переменная длина , которая только израсходует пробелы для символов, которые Вы храните. Это не зарезервирует устройство хранения данных как char или nchar .

nchar и nvarchar поднимет вдвое больше пространства памяти, таким образом, может быть мудро использовать их, только если Вам нужно поддержка Unicode.

807
ответ дан shA.t 27 June 2013 в 05:43
поделиться

nchar и символ в значительной степени действуют точно таким же образом друг в качестве друга, также, как и nvarchar и varchar. Единственная разница между ними - то, что nchar/nvarchar хранят символы Unicode (важный при требовании использования расширенных наборов символов), пока varchar не делает.

, поскольку символы Unicode требуют, больше устройства хранения данных, nchar/nvarchar поля занимают вдвое больше места (так, например, в более ранних версиях SQL Server, который максимальный размер nvarchar поля 4000).

Этим вопросом является дубликат этот .

33
ответ дан Community 27 June 2013 в 05:43
поделиться

nchar требует [еще 113] пространство, чем nvarchar.

, например,

символ А (100) будет всегда хранить 100 символов, даже если Вы только войдете 5, оставление 95 символами будет дополнено пробелами. Хранение 5 символов в varchar (100) сохранит 5 символов.

7
ответ дан RBT 27 June 2013 в 05:43
поделиться

nchar (10) является строкой Unicode фиксированной длины длины 10. nvarchar (10) является строкой Unicode переменной длины с максимальной длиной 10. Как правило, Вы использовали бы первого, если все значения данных являются 10 символами и последним, если длины варьируются.

5
ответ дан Jason Kresowaty 27 June 2013 в 05:43
поделиться
  • nchar является фиксированной длиной и может содержать unicode символы. это использует двухбайтовое устройство хранения данных на символ.

  • varchar имеет переменную длину и не может содержать unicode символы. это использует однобайтовое устройство хранения данных на символ.

4
ответ дан Manu 27 June 2013 в 05:43
поделиться

NVARCHAR может сохранить символы Unicode и берет 2 байта за символ.

1
ответ дан Gustavo Rubio 27 June 2013 в 05:43
поделиться

Различия заключаются в следующем:

  1. n [var] char хранит Unicode, а [var] char хранит только однобайтовые символы.
  2. [n] char требует фиксированного количества символов точной длины, в то время как [n] varchar принимает переменное количество символов до определенной длины включительно.

Другое отличие заключается в длине. И nchar, и nvarchar могут иметь длину до 4000 символов. И char и varchar могут быть длиной до 8000 символов. Но для SQL Server вы также можете использовать [n] varchar (max), который может обрабатывать до 2 147 483 648 символов. (Два гигабайта, 4-байтовое целое число со знаком.)

7
ответ дан 22 November 2019 в 22:01
поделиться
  • char : символьные данные фиксированной длины с максимальной длиной 8000 символов.
  • nchar : данные Unicode фиксированной длины с максимальной длиной 4000 символов.
  • Char = длина 8 бит
  • NChar = длина 16 бит
14
ответ дан 22 November 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: