Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
16.04.2013
Размер:
1.04 Mб
Скачать
    1. Определение данных в языке sql.

Речь истины - проста” ПЛАТОН 427-348 гг. до н.э.

Язык определения данных (DDL) – часть язык SQL, Он позволяет создавать и уничтожать различные объекты базы данных: схемы, домены, таблицы, представления и индексы. Кроме этого стандартISOдопускает создание утверждений, наборов символов, сопостовлений и толкований. Мы их оставим на самостоятельное изучение заинтересованным лицам.

Администраторам баз данных доступны и иные команды, предназначенные для определения деталей хранения и использования данных, но они слишком завися от конкретных СУБД и нами не будут рассматриваться. Прежде всего целесообразно ознакомиться с синтаксисом идентификаторов в языке SQLи типами данных, используемых для описания значений в столбцах таблиц.

Идентификаторы предназначены для обозначения объектов в языке SQL, т.е имен таблиц, представлений и столбцов. Символы в идентификаторах задаются на наборе символов, который по умолчанию включает прописные и строчные буквы латинского алфавита (A – Z a – z),цифры ( 0 – 9 ) и символ подчеркивания ( _ ). Допускается использование дополнительного набора символов. Кроме указанных, на формат идентификатора накладываются следующие ограничения.

  • Идентификатор может иметь длину не более 128 символов (диалекты имеют более жесткие ограничения).

  • Идентификатор должен начинаться с буквы.

  • Идентификатор не может содержать пробела.

В язык ISO существуют шесть скалярных типов данных, определяемых стандартомISO. Иногда, в целях упрощения, данные типовcharacter иbit объединяются под названием «строковые типы данных», данные типовexact numeric и approximate numeric – под понятием «числовые типы данных».

      1. Типы данных языка isq sql92.

Хорошее начало – половина дела” ПЛАТОН 427-348 гг. до н.э.

Символьные типы.

CHARACTER [VARYING] [(length)]

Возможны сокращения CHARACTER доCHAR, аCHARACTER VARYING до VARCHAR. Параметрlengthиспользуется для указания максимального количества символов (по умолчанию – 1). Символьгная строка может бить с постоянной или переменной длиной. В первом случае значение доплняется пробелами, а во втором – сохраняться только введённые символы.

ПРИМЕРЫ ninCHAR(9)

address VARCHAR(30)

Битовые типы.

BIT [VARYING] [(length)]

Синтаксис битовых типов данных аналогичен символьным.

ПРИМЕРЫ codeBIT(4)

bit_string VARYING BIT(300)

Типы точных чисел.

NUMERIC [ precision [, scale ] ]

DECIMAL [ precision [, scale ] ]

Integer (можно сократить до int)

SMALLINT

Синтаксис точных числовых типов данных используется для определения чисел, имеющих точное представление в компьютере (для работы без потери точности при хранении). Данные точного числа определяются значностью (precision) и длиной дробной части (scale). По умолчанию scale = 0 (а precision зависит от реализации). Особой разновидностью точных чисел являются целые числа. Для небольших целых используется тип SMALLINT (значение не более 32767).

ПРИМЕРЫ.

nom_roomSMALLINT

salary DECIMAL(8,2)

Округленные числа.

FLOAT [ precision ]

REAL

DOUBLE PRECISION

Используются для описания чисел с плавающей точкой в научной нотации, т.е. 10Е3, 23.456Е-12 и т.д. По определению они округляются на конечной разрядной сетке компьютера. Параметр precision задает разрядность мантиссы, в остальном типы зависят от реализации.

Дата и время.

DATE

TIME [ time_precision ] [WITH TIME ZONE]

TIMESTAMP [ time_precision ] [WITH TIME ZONE]

Стандарт ISO разделяет “дату/время” на подтипы: YEAR - год, MONTH - месяц, DAY - день, HOUR - час, MINUTE - минута, SECOND - секунда, TIMEZONE_HOUR - зональный час и TIMEZONE_MINUTE - зональная минута. Два последних определяют зональный сдвиг времени по отношению к универсальному (Гринвичскому времени). Тип данных DATE поддерживает поляYEAR, MONTH, DAY, а типTIME – HOUR, MINUTE, SECOND. ТипTIMESTAMP используется для хранения даты и момента времени. Параметр time_precision определяет точность храения в полеSECOND.

Данные типа INTERVAL.

Существует два типа с интервальным типом: интервалы YEAR-MONTH и интервалы DAY_TIME. В первом случае включаются только параYEAR и/илиMONTH. Данные второго типа могут состоять из произвольной последовательности полейDAY, HOUR, MINUTE, SECOND. Данные интервального типа определяются следующим образом.

INTERVAL { { start_field TO end_field } single_datetime_field }

start_field = YEAR | MONTH | DAY |HOUR | MINUTE

[ (interval leading field precision) ]

end_field = YEAR | MONTH | DAY |HOUR | MINUTE

[ ( fractional seconds precision ) ]

single_datetime_field = start_field | SECOND

[ (interval leading field precision )

[ , ( fractional seconds precision ) ] ]

Во всех случаях для параметра start_fieldнеобходимо указать размерность первого поля, (interval leading field precision) по умолчанию принимаемая равной двум.

ПРИМЕРЫ

plan_intervalINTERVAL YEAR(2) NO MOUNTH

work_intervalINTERVAL HOUR NO SECOND(4)

В первом случае описывается интервал времени в диапазоне от 0 года и 0-месяца до 99 года и 11 месяца. Во втором случае интервал может помещаться от 0 часов, 0 минут, 0 секунд до 99 часов, 59 минут, 59,9999 сукунд.

Соседние файлы в папке УП_ОПТ2