Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Наборы символов и последовательность сортировки

Наборы символов и последовательность сортировки

Набор символов, выбранный для хранения текстовых данных, определяет:

* символы, которые могут быть использованы в столбцах CHAR, VARCHAR и BLOB SUB_TYPE | (текст);

* число байтов, выделяемых для каждого символа;

* последовательность сортировки по умолчанию (алфавитно-цифровой порядок), используемая при сортировке столбцов CHAR и VARCHAR (столбцы BLOB не могут сортироваться - так что последовательность сортировки для них не применяется).

Если для столбца вы не укажете набор символов, то для него будет использован набор символов по умолчанию базы данных. Если для базы данных не указан набор символов по умолчанию, то столбец получит значение CHARACTER SET NONE. ЕСЛИ ваша база данных используется в окружении, где присутствует только английский язык, у вас может появиться соблазн не использовать набор символов. Не соблазняйтесь! Набор символов NONE безропотно примет любые однобайтовые символы. Проблемы появятся- в неанглийском окружении или при наличии смешанных языков- вы получите ошибку транслитерации при выборе ваших текстовых данных. То, что уходит, не всегда то же самое, что приходит!

Текст, вводимый с клавиатуры или с других устройств ввода, например с устройства считывания штрихового кода, особым образом кодируется в соответствии с некоторой стандартной кодовой страницей, которая может быть связана с диалектом, заданным при установке вводящего устройства. Обычно входные устройства снабжаются программами-адаптерами, дающими возможность пользователям по желанию переключать кодовую страницу.

В одной кодовой странице числовой код, соответствующий образу некоторого символа, может отличаться от кода в другой кодовой странице. В основном каждый набор символов Firebird отображает некоторую кодовую страницу или группу связанных кодовых страниц. Некоторые наборы символов работают более чем с одной кодовой страницей, в отдельных случаях кодовая страница будет работать более чем с одним набором символов. Различные языки могут использовать один общий набор символов, но по-разному отображая пары прописные/строчные буквы, символы валюты и др.

Помимо набора символов различные страны, языки и даже культурные группы, применяющие то же самое распределение символов, используют различные последовательности для определения "алфавитно-цифрового порядка" для сортировки и сравнений. Следовательно, для большинства наборов символов Firebird предоставляет множество последовательностей сортировки. Некоторые последовательности сортировки также учитывают пары прописные/строчные буквы для решения задачи упорядочивания, не чувствительного к регистру. Предложение COLLATE используется в отдельных контекстах, где важна последовательность сортировки, хотя оно и не объявляется на уровне базы данных.

Серверу нужно знать, какой набор символов используется при хранении данных, чтобы определить размер требуемой памяти и оценить характеристики сортировки для правильного упорядочивания, сравнения, перевода символов в верхний и нижний регистры и т.д. Помимо этого, он безразличен к символам вводимого текста.

Оглавление книги


Генерация: 1.602. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз