ПредишенСледващото

Масивите могат да съдържат елементи от всякакъв вид поддържа Firebird освен BLOB. Масивите от масиви не се поддържат. Всички елементи на специфичен набор имат един и същ тип данни.

Масивът може да се дефинира като областта (като се използва CREATE ОБЛАСТ) или като колона в отчета за CREATE TABLE или ALTER масата. определение на домейн или колона на масива е подобно на определението за всяко друго подобно съоръжение, тя се добавя само да се уточни измерение масив. Размерът на масива се в квадратни скоби, последвано от описанието на типа данни.

Например, следното изявление определя обикновено характер колона и колоната под формата на едномерен характер масив с осем елемента:

Създаване на таблица ATABLE (ID BIGINT,

ARR_CHAR (14) [8] набор от символи октета);

/ * Приема един ред от 8 елементи * /

Firebird поддържа многомерни масиви от измерение от 1 до 16. Например, следното изявление определя три колони на число масив с две, три и четири измерения:

Създаване на таблица BTABLE (

/ * Приема 4 реда от 5 = 20 елементи на елементи * /

/ * 6 нива на 4 до 5 реда елементи = 120 елементи * /

ARR_INT3 INTEGER [4,5,6]

/ * 7 нива на 6 нива в 4 реда на елементи = 5 * 840 клетки /

Firebird магазини многомерни масиви в реда на линии разположени. В някои езици, като FORTRAN, се очаква, че масиви се съхраняват в разгръщане реда на колоните. В такива случаи, да се грижи за правилния превод от порядъка на елементи между Firebird и използваният език за програмиране.

Обхват на индекса стойности за размерите

Array измерение в Firebird не е зададено като горните и долните граници, наречена списъка с индекси. размери подразбиране се основават на 1 - първият елемент от набор от елементи п е индекс от 1, вторият елемент има индекс на 2, а последният елемент индексът п. Например, следното изявление създава маса с колона, която е масив от четири числа:

Създаване на таблица TABLEC (ARR_INT INTEGER [4]);

Индексите на този масив 1, 2, 3 и 4.

Персонализирани (изрични) индекси на границите

определяне на горна и долна граница Потребителят може ясно да се определя за всеки размер на масива да се създаде ARRAY колона. Например, програмисти C и Паскал, запознати с масиви базирани на нула, колоните могат да създават масиви с по-ниска граница на нула за пълно съответствие със структурата на масиви в кода на приложението.

Задължително долна и горна граница на измерение при определянето на потребителски граници. Използвайте следния синтаксис:

Следващият пример създава таблица с Непропорционални, въз основа на произхода на колоната:

Създаване на таблица, внесени

/ * Индекс 0, 1, 2 и 3. * /

Всеки граници задачи размери отдалечена от следващата със запетая. Например, следното изявление създава маса с колона от масив с размери два, в които и двете величини са базирани на нула:

Създаване на таблица TABLEE

(ARR_INT INTEGER [0: 3, 0: 3]);

масиви колони

Както и при другите типове данни, реализирани като BLOB, Firebird съхранява идентификатора на масива в колоната на таблицата с база данни, която се отнася до страницата, която съдържа най-актуалните данни.

Както и в случая на други видове BLOB, Firebird сървъра не може да сканира последователно отделните елементи за условно опресняване. В този случай, един ГСД възможно оператор да се изолира единичен елемент или набор от последователни елементи, наречени фрагмент и се прехвърля фрагмент за ъпгрейд.

Отчетът за INSERT не могат да работят на фрагменти. Когато ред се добавя към таблицата, съдържаща колони масив, е необходимо да се конструира и да запълни целия масив преди преминаване да вложка.

Достъп до масива от данни

Някои APIs капсулират функции и API дръжки ограничен достъп за четене е възможно от съхранени процедури.

/ * Долната граница на масив или фрагмент * /

/ * Горна граница на масива или фрагментът * /

неподписан овъгляване array_desc_dtype;

/ * Тип на елементи от данни * /

/ * Скала за числените типове * /

неподписан кратко array_desc_length;

/ * Array дължина елемент в байтове * /

ГЛАВА 13. домейни.

Домейни в Firebird е равносилно на концепцията за "типове данни, дефинирани от потребителя". Въпреки, че не е възможно да се създаде нов тип данни в домейна, който може да "пакет" и набор от атрибути с един от съществуващите типове данни, присвоите име и след това да го използвате като вид параметър данни, за да се определи колони от всяка маса.

дефиниции на домейни са глобални към базата данни - всички графи в някоя маса, които са били идентифицирани с един домейн ще има напълно идентични характеристики, с изключение на тези, които са били обект на изключение на местно ниво.

Както е отбелязано, домените могат да бъдат заместени за определяне на типа данни на променливи и аргументи съхранени процедури и тригери.

ЗАБЕЛЕЖКА. Смяна на домейн атрибути на ниво колона се обсъжда по-късно в тази глава.

Колони основава на определението на домейн наследят всички атрибути на домейна, който може да бъде:

* Тип на данните (по избор);

* Стойността по подразбиране за Вложката;

* Набор от символи (само за характера и BLOB колони);

* Ред на сортиране (за колонки от знаци).

ЗАБЕЛЕЖКА. Не можете да използвате референци- целостта на данните в домейна.

Предимства на капсулиране на определения за данни са очевидни. За един прост, но като цяло Да предположим, че сте проектиране за лечение на различни малки масички, където ще се съхранява текстови описания на номерирани комплекта - Таблица "типове" - видове сметки, видове продукти, видове дарения и т.н. Вие решавате, че всеки елемент от всеки един от тези комплекти ще има ключ, който се състои от три главни букви, което показва полето за описание на характера или титла като най-много 25 знака.

Всичко това изисква създаването на две области.

* Домейн за показалеца е CHAR (3) с две допълнителни атрибути: лимит NOT NULL, защото вие ще го използват като основен ключ и ключове за търсене, както и условието за проверка, за да се провери за главни букви. Например:

CREATE ОБЛАСТ Ture_Keu AS CHAR (3) НЕ NULL

* Описание на домейна ще бъде VARCHAR (25). Искаш ли да се предотврати празни стойности във вид на таблица, в която възнамеряват да използват за това, се управляват:

CREATE ОБЛАСТ Type_Description AS VARCHAR (25) НЕ NULL;

Когато създавате тези домейни, всички сродни таблици могат да имат подобни определения, и всички таблици, които съхраняват ключове, сочат към тези таблици, ще използва подходящия домейн за основните колони.

Синтаксис език дефиниране на данни (DDL) за създаване на домейн:

CREATE ОБЛАСТ домейн [AS] <тип-данных>

[Default л | NULL | USER]

[НЕ NULL] [ПРОВЕРКА (<условие-поиска-домена>)]

Свързани статии

Подкрепете проекта - споделете линка, благодаря!