10.01.2017 Views

sql

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

хранения имен, или 11 символов в столбец с номером карточки социального страхования.<br />

В столбцы для строк фиксированной длины нельзя вводить больше символов, чем<br />

разрешено. Столбцы также выделяют для хранения именно столько места, сколько<br />

разрешено. Так, если имя Бен сохраняется в поле столбца имен, рассчитанном на ввод 30<br />

символов, будет сохранено ровно 30 символов (при необходимости текст дополняется<br />

пробелами или нулями).<br />

В строках переменной длины можно хранить столько символов, сколько необходимо<br />

(максимальное значение ограничивается типом данных и СУБД). Некоторые типы данных<br />

переменной длины имеют ограничение снизу (фиксированное значение минимальной<br />

длины). Другие ограничений не имеют. В любом случае сохраняются только указанные<br />

данные (и никаких дополнительных).<br />

Если тип данных переменной длины обладает такой гибкостью, зачем вам использовать<br />

типы данных фиксированной длины? Ответ прост: для повышения производительности.<br />

СУБД способна сортировать столбцы с данными фиксированной длины и манипулировать<br />

ими намного быстрее, чем столбцами с данными переменной длины. Кроме того, многие<br />

СУБД не способны индексировать столбцы с данными переменой длины (или переменную<br />

часть столбца). (За подробностями относительно индексов вам следует обратиться к уроку<br />

22, "Расширенные возможности SQL".)<br />

Таблица Г.1. Строковые данные<br />

Тип данных<br />

Описание<br />

CHAR Строка фиксированной длины, состоящая из 1-255<br />

символов. Ее размер должен быть определен во время<br />

создания<br />

NCHAR<br />

Особая форма типа данных CHAR, разработанная с<br />

целью поддержки многобайтовых символов или<br />

символов Unicode. (Точная спецификация зависит от<br />

реализации)<br />

NVARCHAR<br />

Специальная форма типа данных TEXT, разработанная<br />

с целью поддержки многобайтовых символов или<br />

символов Unicode. (Точная спецификация зависит от<br />

реализации)<br />

TEXT (также называется Текст переменной длины<br />

LONG, или MEMO, или<br />

VARCHAR)<br />

Использование кавычек<br />

Независимо от формы используемых строковых данных значение строки должно быть<br />

всегда заключено в одинарные кавычки.<br />

Когда числовые значения не являются таковыми<br />

Вы можете подумать, что номера телефонов и ZIP-коды должны храниться в числовых<br />

полях (ведь они содержат только числовые данные), но поступать так нецелесообразно.<br />

Если вы сохраните ZIP-код 01234 в числовом поле, будет сохранено число 1234. Вы<br />

потеряете одну цифру.<br />

Основное правило таково: если число предназначено для вычислений (сумм, средних<br />

значений и т.д.), его следует хранить в столбце, предназначенном для числовых данных.<br />

Если оно используется в качестве строкового литерала (пусть он и состоит только из<br />

цифр), его место – в столбце с данными строкового типа.<br />

Числовой тип данных

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!