Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4.2. Описание данных на основе SQL.doc
Скачиваний:
28
Добавлен:
11.05.2015
Размер:
83.97 Кб
Скачать

9

4.2. Описание данных на основе SQL

4.2. Описание данных на основе sql Организация данных в InterBase. Типы данных

В каждом столбце таблицы хранятся данные одного определенного типа.

Описанные типы данных относятся именно к InterBase, хотя многие другие SQL-серверы имеют схожие с ним типы данных. В отличие от других серверов сервер InterBase:

        • не имеет автоинкрементного типа данных и компенсирует его отсутствие особым механизмом генераторов;

        • не имеет логического типа данных и вместо него предлагает использовать символьный тип Char(1) или VarChar(1);

        • не имеет денежного типа данных;

        • использует столбцы-массивы.

Обзор типов данных InterBase.

Типы столбцов, которые могут использоваться в таблицах сервера InterBase, перечислены в табл. 1.

Тип столбца

Размер, байт

Описание

SMALLINT

INTEGER

FLOAT

DOUBLE PRECISION

2

4

4

8

Целочисленные значения от -32 768 до +32 767

Целочисленные значения от -2 147 483 648 до +2 147 483 647

Вещественные числа до 7 значащих цифр в диапазоне от 3,4х10-38 до 3,4х10+38

Вещественные числа до 15 значащих цифр в диапазоне от 1,7x10-308 до 1,7х10+308

NUMERIC или DECIMAL

Переменный

Вещественные числа с фиксированной запятой. При определении этого типа дополнительно указывается общее количество значащих цифр числа и количество цифр в дробной части

CHAR(n) или CHARACTER

0-32 767

Текстовый столбец длиной до n символов

VARCHAR(n) или

0-32 767

Текстовый столбец переменной длины,

CHARACTER] VARYING

содержащий до n символов

DATE

8

Дата в пределах от 01.01.0100 до 11.12.5941. Также может хранить сведения о времени

BLOB

Переменный

Любой тип двоичных данных

Домены

Создание доменов

Перед тем, как создавать таблицы, которые ссылаются на домены, необходимо задать описания доменов при использовании команды CREATE DOMAIN. В результате ее выполнения создается шаблон, на который можно ссылаться в командах создания и модификации таблиц.

Синтаксис описания доменов:

CREATE DOMAIN <name_domain> [AS] <data_type> [DEFAULT {literal| NULL| USER}] [NOT NULL] [CHECK (<dom_condition>)];

где <name_domain> – имя создаваемого домена;

<data_type> – любой допустимый тип данных;

[DEFAULT {literal| NULL| USER}] – задание значения по умолчанию. Значение по умолчанию присваивается соответствующему атрибуту при создании новой строки в таблице, если его значение не указано явно. Literal – указывает значение явно; NULL – оставляет значение пустым; USER – имя пользователя, создавшего запись. Для полей типа дата можно указывать NOW – вводится текущая дата;

NOT NULL – запрещает ввод пустых значений;

CHECK (<dom_condition>) – задает ограничение (описание контроля данных при вводе и изменении).

Примеры:

CREATE DOMAIN USERNAME AS VARCHAR (20) DEFAULT USER;

CREATE DOMAIN MONTH AS SMALLINT CHECK (VALUE BETWEEN 1 AND 12);

CREATE DOMAIN D_ELEM AS CHAR (2) CHECK (VALUE IN (‘Au’, ‘Ag’, ‘Pt’, ‘Pd’, ‘Os’, ‘Rt’));

CREATE DOMAIN PVEIGHT AS NUMERIC (12,2) DEFAULT NULL CHECK ((VALUE IS NULL) OR (VALUE> 1.25));

Изменение доменов

Изменение доменов осуществляется командой ALTER DOMAIN. С помощью данной команды можно изменить любые характеристики домена, кроме типа данных и установок NOT NULL. Сделанные изменения воздействуют на атрибуты всех таблиц, где использовался измененный домен.

Команду ALTER DOMAIN может выдать либо создатель домена, либо пользователь с правами системного администратора.

Для изменения типа поля или установки NOT NULL необходимо удалить домен, если это возможно (если домен используется для описания столбцов каких-либо таблиц, то удалить его нельзя), а затем создать его снова с требуемыми характеристиками.

Формат команды изменения домена:

ALTER DOMAIN name_domain {[SET DEFAULT {literal|NULL|USER}] [DROP DEFAULT] [ADD [CONSTRAINT] CHECK (<dom_condition>)] [DROP CONSTRAINT]};

где [DROP DEFAULT] – удалить значение по умолчанию;

[ADD [CONSTRAINT] CHECK (<dom_condition>)] – добавить ограничение;

[DROP CONSTRAINT] – удалить ограничение.

Пример.

ALTER DOMAIN D_ELEM DROP CONSTRAINT;

ALTER DOMAIN D_ELEM ADD CHECK(VALUE IN (‘H’, ‘LI’, ‘NA’, ‘K’));

ALTER DOMAIN USERNAME SET DEFAULT ‘***’;

Удаление доменов

Удаление доменов осуществляется командой DROP DOMAIN. Если домен используется в каких-либо таблицах, то удалить его нельзя.

Формат описания команды:

DROP DOMAIN name_domain;