Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект sql_итого.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
343.55 Кб
Скачать

2 Строки

Строковые данные (последовательности символов) имеют три главных строковых типа. Для столбца таблицы можно указать тип character (n) или char (n) (строка фиксированной длины), где n — максимальное количество символов, содержащихся в строке. Если (n) не указано, то предполагается, что строка состоит из одного символа. Если в столбец типа character (n) вводится m < n символов, то оставшиеся позиции заполняются пробелами.

Тип данных CHARACTER VARYING (n) или VARCHAR (n) (строка переменной длины) применяется тогда, когда вводимые данные имеют различную длину и нежелательно дополнять их пробелами. При этом сохраняется только то количество символов, которое ввел пользователь. В данном случае указание максимального количества символов обязательно (в отличие от character).

Данные типов character и character varying могут участвовать в одних и тех же строковых операциях.

Тип данных CHARACTER LARGE OBJECT (CLOB – большой символьный объект) используется для представления очень больших символьных строк (например, статей, книг и т. п.). В некоторых СУБД данный тип называется memo, а в других – text. С дан­ными этого типа можно выполнять не все операции, предусмот­ренные для типов CHARACTER и CHARACTER VARYING. Так, их нельзя использовать в операциях сравнения, за исключением равенства и неравенства. Кроме того, столбцы этого типа не могут быть первичными и внешними ключами, а также быть объявлены как имеющие уникальные значения. Иначе говоря, при создании таблиц с помощью оператора create и объявлении столбцов типа clob нельзя использовать ключевые слова primary key, FOREIGN KEY и UNIQUE.

В следующем примере создается таблица с обычным символь­ным столбцом и столбцом типа clob, значения которого могут содержать 100 000 символов:

CREATE TABLE myTable

( FIELD1 CHARACTER (60),

FIELD2 CLOB (100000));

3 Числа

Числовой тип данных может быть двух видов точный и при­близительный. Точные числовые типы позволяют точно выра­зить значение числа. Некоторые величины имеют очень большой диапазон значений, и в таких случаях достаточно ограничиться некоторым приближенным их представлением с учетом техниче­ских возможностей компьютера (размеров регистра).

К точным числовым относятся следующие пять типов:

– integer – целое (без дробной части) число. Количество разрядов (точность) зависит от реализации SQL. В некоторых реализациях числа этого типа лежат в диапазоне от -2 147 483 648 до 2 147 483 647 (четырехбайтное целое число);

– smallint – малое целое число. Количество разрядов зависит от реализации SQL, но не больше количества разрядов integer в этой же реализации. В некоторых реализациях числа этого типа лежат в диапазоне от -32 768 до 32 767 (двухбайтное целое число);

– bigint – большое целое число. Количество разрядов зависит от реализации SQL и превышает количество разрядов числа типа integer;

– numeric (x, у) – число, в котором всего х разрядов (точность), из которых у разрядов (масштаб) отводится для дробной части. Если у не указано (numeric (х)), то для дробной части отводится количество разрядов, установленное в системе по умолчанию. Если не указаны ни х, ни у (numeric), тo принимаются обе эти величины, установленные по умолчанию. Например, если указан тип numerc (6, 2), то максимальное значение числа равно 9999.99;

– decimal (x, у) – десятичное число, в котором всего х разрядов, из которых у разрядов отводятся для дробной части. Если х или/и у не указаны, то принимаются значения по умолчанию. Этот тип очень похож на numeric. Отличие состоит в том, что если в decimal (х, у) указанные х и у меньше, чем допустимые реализацией SQL, то будут использоваться последние. Если х и у не указаны, то применяется система умолчаний. Например, вы задали для столбца тип decimal (6, 2). Если реализация SQL позволяет, то в этот столбец можно ввести числа, превышающие 9999.99. В отличие от decimal (х, у), тип numeric (x, у) жестко задает диапазон возможных значений числовой величины.

К приблизительным числовым типам относятся следующие три типа:

– real – вещественное число одинарной точности с плавающей разделительной точкой (эта точка «плавает», появляясь в различных местах числа). Например, 5.25, 5.257, 5.2573. Точность представления числа зависит от реализации SQL и оборудования. Например, 32-битовый компьютер дает большую точность, чем 16-битовый;

– double precision – вещественное число двойной точности с плавающей разделительной точкой. Точность представления числа зависит от реализации SQL и оборудования. Применяется для представления научных данных (например, результатов измерений) в широком диапазоне значений, т. е. как очень малых (близких к 0), так и очень больших;

– float (x) – вещественное число с плавающей разделительной точкой и минимальной точностью х, занимающее не более 8 байтов. Если компьютер может поддержать указанную точность, используя аппаратную одинарную точность, то система будет использовать арифметику одинарной точности. Если указанная точность требует арифметики с двойной точностью, то система будет использовать ее. Данный тип следует применять, если предполагается возможность переноса базы данных на другую аппаратную платформу, отличающуюся размерами регистров. Пример значения типа float: 5.318E-24 (т.е. 5.318, умноженное на 10 в степени -24). Такую же форму представления имеют и числа типа real и double precision.

При создании таблиц целочисленные типы применяются для столбцов, содержащих разного рода идентификаторы, например, номера (коды) клиентов, товаров, заказов и т. п. Разумеется, ес­ли содержимое столбца должно быть целым числом (например, количество ящиков, бутылок, штук и т. п.), то тип этого столбца естественно определить как integer, smallint или bigint.

Допустим, в таблице клиенты имеется столбец ID_клиента, со­держащий уникальные идентификаторы клиентов. Если количе­ство клиентов не превышает 32 000, то тип столбца можно опре­делить как smallint. Если в вашей таблице будут храниться сведения о сотнях тысяч клиентов, то тип столбца id_клиента следует определить как integer.

Если столбец в проектируемой таблице должен содержать числа с дробной частью, то для него можно задать какой-нибудь неце­лочисленный тип. Если вы не уверены, что применить: точные числовые типы или приблизительные, выбирайте точные (numeric, decimal). Они требуют меньше ресурсов и дают точ­ные результаты. Если в столбце предполагается хранить данные из очень широкого диапазона (и очень малые, и очень большие числа), то используйте приблизительные типы данных (float, real).