Текстовые типы данных.
Символьные типы данных.
К символьным типам данных относятся следующие типы:
Char(n)– этот тип данных разрешает хранение набора символов длиной до 8000 знаков. Аргумент n определяет максимальное количество символов, его максимальное значение равно 8000 (255 для SQL Server 6.x). В таблице для хранения значений типа char выделяется указанное количество байт независимо от того, сколько символов было реально сохранено. Если пользователь сохраняет строку длиной менее объявленной, то сервер добавляет в конец строки необходимое количество пробелов. Если строка превышает объявленную длину, то строка усекается, и часть конечных символов будет потеряна.
Varchar(n) – этот тип подобен типу данных char с тем отличием, что количество выделяемого в таблице пространства зависит от реального числа байтов, которое занимает значение.
Nchar(n) – поведение сервера при работе с этим типом аналогично работе с типом данных char с тем отличием, что тип nchar используется для хранения символов Unicode. Каждый символ Unicode занимает два байта и, следовательно, максимальное количество символов, которое можно сохранить с использованием этого типа, равно 4000. Если в коде программы необходимо явно указать тип символьной строки как Unicode, то перед строкой ставится символ «N». Например, оператор SET присвоит переменной символьную строку в формате Unicode. Если символ «N» не указывается, то сервер предполагает, что строка указана не в Unicode.
Текстовые типы данных так же, как и символьные, позволяют хранить текстовые данные. Они обеспечивают хранение очень большого количества символов – до 2 Гбайт. К текстовым типам данных относятся:
Text–этот тип обеспечивает хранение блоков текста длиной до 231–1 (2 147 483 647) символов. Как и для данных типа image,при работе с данными типа text сервер первоначально выделяет для хранения данных одну страницу (8 Кбайт). При необходимости выделяются дополнительные страницы, которые связываются в цепочку.
Ntext –при работе с большим объемом текста в формате Unicode используется тип данных ntext,обеспечивающий хранение до 230–1 (1 073 741 823) символов. Хранение данных типа ntextосуществляется теми же методами, что и типов text и image.
Работа с текстовыми типами данных отличается от работы с символьными типами данных. SQL Server 7.0 предлагает набор специализированных функций для обработки текстовых данных. Эти функции перечислены в таблице.
Функция | Назначение |
DATALENGTH | Возвращает количество байт, занимаемых величиной. |
PATINDEX | Поиск подстроки в текстовом поле |
SUBSTRING | Возвращает подстроку текстового поля |
TEXTPTR | Возвращает указатель на текстовую колонку |
TEXTVALID | Проверка правильности указателя |
READTEXT | Считывает данные из текстового поля |
SET TEXTSIZE | Определяет количество символов, возвращаемых командой SELECT |
UPDATETEXT | Используется для изменения текстовых данных |
WRITETEXT | Перезаписывает текстовые поля в строке |