Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.
Получив основы использования e>Postgre> SQL для доступа к данным, теперь мы поговорим о таких свойствах
Postgres, которые отличают его от обычных администраторов данных.
Эти свойства включают наследование, time
travel и неатомарные значения данных (массивы и
многозначные атрибуты).
Примеры этого раздела можно также найти в
advance.sql в каталоге tutorial.
(Смотри Главу 5 как их использовать.)
Давайте создадим два класса. Класс capitals содержит столицы штатов,
которые также есть и в cities. Естественно, класс
capitals должен наследоваться от cities.
CREATE TABLE cities (
name text,
population float,
altitude int -- (in ft)
);
CREATE TABLE capitals (
state char(2)
) INHERITS (cities);
В этом случае, экземпляр класса capitals наследует все атрибуты (name, population, и altitude) от своего родителя, cities.
Тип атрибута name - это text, родной тип Postgres для ASCII строк переменной длины. Тип атрибута population - это
float, родной тип Postgres для дробных чисел двойной точности. Строение capitals имеет
дополнительный атрибут, state, который отображает штат.
В Postgres, классы могут наследоваться от нуля и более классов, и
запросы могут относится или ко всем экземплярам класса или ко всем экземплярам
класса плюс ко всем его потомкам.
Замечание: Наследственная иерархия - это прямой нециклический граф.
Например, следующий запрос ищет все города, которые расположены на высоте
500ft или выше:
Здесь “*” после cities показывает, что запрос должен касаться
всего cities и всех классов ниже cities в наследственной иерархии.
Многие из команд, про которые мы уже говорили (select,
and>upand> и delete)
поддерживают “*” тип записи, как и другие типа
alter.