Иллюстрированный самоучитель по SQL для начинающих

Основы SQL

Тип CHARACTER VARYING

Тип данных CHARACTER VARYING полезен тогда, когда вводимые в столбец значения имеют разную длину, но вы не хотите, чтобы поле заполнялось пробелами. Этот тип данных Дает возможность сохранять то количество символов, которое ввел пользователь. Для типа CHARACTER VARYING нет значения по умолчанию. Чтобы указать этот тип данных, используйте синтаксис CHARACTER VARYING (х) или VARCHAR (х), где х – это максимальное разрешенное количество символов.

Тип CHARACTER LARGE OBJECT

Тип данных CHARACTER LARGE OBJECT (CLOB) впервые появился в SQL: 1999. Как Указывает его имя (означает "большой символьный объект"), он используется вместе с громадными символьными строками, которые для типа CHARACTER слишком велики. Данные – LOB ведут себя во многом так же, как и обычные символьные строки, но на действия, которые можно с ними проводить, имеется ряд ограничений. Для типа CLOB нельзя использовать предикаты PRIMARY KEY (первичный ключ), FOREIGN KEY (внешний ключ), UNIQUE (уникальный). Более того, эти данные нельзя использовать для сравнения, за исключением равенства или неравенства. Из-за того, что у данных CLOB большие размеры, они как правило, всегда остаются на сервере. Вместо них на стороне клиента применяется специальный тип данных, который называется локатор LOB (LOB locator). Это параметр, значение которого идентифицирует большой символьный объект.

Типы NATIONAL CHARACTER, NATIONAL CHARACTER VARYING и NATIONAL CHARACTER LARGE OBJECT

В разных языках используются символы, которые отличаются от любых символов другого языка. Например, в немецком имеются символы, которых нет в наборе символов английского языка. Имеются языки, такие, например, как китайский или японский, в которых набор иероглифов очень сильно отличается от наборов символов других языков. Если вы в своей системе сделаете английский языком по умолчанию, то все равно сможете использовать и другие символьные наборы, так как типы данных NATIONAL CHARACTER, NATIONAL CHARACTER VARYING и NATIONAL CHARACTER LARGE OBJECT работают точно так же, как и CHARACTER, CHARACTER VARYING и CHARACTER LARGE OBJECT, за исключением того, что определяемый вами набор символов отличается от того, который вы используете по умолчанию. Набор символов можно указывать при определении столбца в таблице. Если нужно, то в каждом столбце можно использовать отдельный набор символов. В следующем примере инструкции, создающей таблицу, используется несколько таких наборов:

CREATE TABLE XLATE
LANGUAGE_1 CHARACTER (40),
LANGUAGE_2 CHARACTER VARYING (40) CHARACTER SET GREEK,
LANGUAGE_3 NATIONAL CHARACTER (40),
LANGUAGE_4 CHARACTER (40) CHARACTER SET KANJI
);

Столбец LANGUAGE_1 (1-й язык) предназначен для символов из набора, используемого в данной реализации по умолчанию. В свою очередь, столбец LANGUAGE_3 (3-й язык) предназначен для символов национального набора данной реализации. А для греческих символов предназначен столбец LANGUAGE_2 (2-й язык). И, наконец, для иероглифов предназначен столбец LANGUAGE_4 (4-й язык).

Логические данные

Тип данных BOOLEAN (булев) имеет два определенных логических значения, true (истина) и false (ложь), а также неопределенное значение unknown (неизвестное). Если любое из первых двух значений сравнить с NULL или со значением unknown, то в результате получится unknown.

Данные типа даты-времени

В SQL:2003 определяются пять различных типов данных, которые относятся к дате и времени. Они называются типами данных даты-времени или просто датой-временем. Некоторые из этих типов данных довольно сильно перекрывают друг друга, поэтому в отдельных реализациях, которые могут вам встретиться, все пять типов, возможно, и не поддерживаются.

Внимание:
В тех реализациях, в которых не полностью поддерживаются все пять типов данных для даты и времени, при переносе в них баз данных из других реализаций могут возникнуть проблемы. Если с переносом возникли сложности, то проверьте, какие имеются способы представления даты и времени в двух реализациях исходной и той, на которую требуется перейти
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.