Поняття типів даних в реляційній моделі даних відповідає поняттю типа даних в мовах програмування. У сучасних реляційних БД допускається зберігання символьних, числових даних, спеціальних числових даних таких як "гроші", а також дат і часу.
У таблиці 2.1 приведені основні типи даних, використовувані в InterBase для полів таблиць, при описі доменів, для змінних усередині процедур, що зберігаються, і тригерів і для параметрів в процедурах і функціях користувача.
Домен – це опис безлічі допустимих значень поля таблиці. Опис домену показує типа даних (наприклад, число або рядок), довжину даних і інші обмеження (наприклад, вимога, аби перший символ був буквою або аби значення не перевищувало заданого числа). У InterBase домени використовуються лише в операторах створення і зміни структури таблиць.
Для створення доменів використовується команда CREATE DOMAIN, для зміни – ALTER DOMAIN, а для видалення – DROP DOMAIN.
Нижче приведений спрощений синтаксис оператора створення домену.
CREATE DOMAIN Імя_Домена [AS] <тип даних> [DEFAULT {Literal | NULL | USER}] [NOT NULL] [CHECK (Проверяємоє_Условіє)];
|
|
При описі синтаксису операторів квадратні дужки позначають необов'язковий елемент, фігурні дужки об'єднують групу елементів оператора в один | означає вибір однієї з декількох альтернатив. Елемент, розташований в кутових дужках повинен пояснюватися окремо.
Таблица 2.1 – Типи даних InterBase
Назва | Розмір | Діапазон/точность | Опис |
SQL діалект 1 | |||
INTEGER | 32 біта | від –2 147 483 648 до 2 147 483 647 | Довге ціле. |
SMALLINT | 16 біт | від –32 768 до 32 767 | Коротке ціле. |
FLOAT | 32 біта | від 3,4х10P–38P до 3,4х10P38P | Число з одинарною точністю (точність 7 значущих цифр). |
DOUBLE PRECISION | 64 біта | від 1,7х10P-308P до 1,7х10P308P | Число з подвійною точністю (точність 15 значущих цифр) |
DATE | 64 біта | від 1 січня 100 року н.е. до 29 лютого 32768 року | Дата. Включає інформацію про час. |
CHAR(n) | n сім-волів | n = 1?32767 | Рядок символів фіксованої довжини. |
VARCHAR(n) | n сім-волів | n = 1?32767 | Рядок символів змінної довжини. |
BLOB | пере-менный | немає | Двійкові великі об'єкти, такі як графіка, текст, цифровий звук. Вміст визначається підтипом. |
SQL діалект 3 | |||
BIGINT | 64 біта | від -2P63P до 2P63P-1 | Велике ціле. |
DATE | 32 біта | від 1 січня 100 року н.е. до 29 лютого 32768 року | Лише дата без інформації про час. |
TIME | 32 біта | від 00:00 до 23:59:9999 | Дані про час з точністю до десятитисячної частки секунди. |
TIMESTAMP | 64 біта | Комбінація типів DATE і TIME. |
У наведеному прикладі необов'язковий елемент
[DEFAULT {Literal | NULL | USER}]
дозволяє задати значення стовпця за умовчанням з використанням однієї з трьох можливостей. Перша можливість, позначена як Literal, дозволяє задавати значення за умовчанням у вигляді текстових констант, чисел і дат. Друга можливість – вказати у визначенні стовпця DEFAULT NULL, що приведе до того, що в новостворюваних записах значення цього стовпця буде NULL. Третій спосіб – вказати при визначенні стовпця DEFAULT USER. Якщо в цьому випадку в таблицю буде вставлений рядок без вказівки значення цього поля, то в нього буде занесено ім'я поточного користувача.
|
|
Якщо необхідно, аби поле мало якесь не порожнє значення, до опису домену вносять NOT NULL.
Останній необов'язковий елемент в описі домену дозволяє змусити сервер перевіряти що заносяться в базу даних значення на виконання заданої умови.
Замість елементу <тип даних> повинно бути використано назву одну з типів даних InterBase (таблиця 2.1).
Фрагмент сценарію створення доменів:
/***************************************************
Домени
***************************************************/
CREATE DOMAIN ID INTEGER NOT NULL; -- ідентифікатор
CREATE DOMAIN Name VARCHAR(30) NOT NULL; -- ім'я
CREATE DOMAIN CurrentDate DATE DEFAULT 'TODAY' NOT NULL;
CREATE DOMAIN Percent INTEGER -- відсоток CHECK (VALUE >= 0 AND VALUE <= 100); -- текст без обмеження довжини:
CREATE DOMAIN MEMO BLOB SUB_TYPE TEXT SEGMENT SIZE 128;
Синтаксис оператора видалення домена:
DROP DOMAIN Імя_Домена;
Оператор зміни домену ALTER DOMAIN дозволяє змінити типа даних, ім'я домену, а також додати або видалити умову контролю даних. Аби змінити домен можна також внести зміни до системних таблиць.