Perl для системного администрирования

       

Установление связей между таблицами


Реляционные базы данных предлагают множество способов установить связи между данными из двух или более таблиц. Этот процесс называется объединением («joining») таблиц. Объединения очень быстро могут стать сложными, учитывая количество используемых запросов и точный контроль, который программист имеет над возвращаемыми данными. Тем, кого интересуют такие детали, лучше заглянуть в книгу по SQL.

Рассмотрим один пример объединения. Здесь будет использоваться таблица под названием contracts, в которой содержится информация о гарантиях на каждую машину (табл. D.3).

Таблица D.3. Таблица Contracts



name

servicevendor

start date

enddate

bendir Dec 09-09-1995 06-01-1998
sander Intergraph 03-14-1998 03-14-1999
shimmer Sun 12-12-1998 12-12-2000
Sulawesi Apple 11-01-1995 11-01-1998

Вот один из способов установить отношение между таблицей hosts и таблицей contracts при помощи объединения:

SELECT name.servicevendor,enddato FROM r,nr\ -rifts, hosts WHERE contracts, name = nosn. r;vne

Проще всего понять этот код, если начать читать его с середины. Условие FROM contacts, '"osrs говорит серверу о том, что связь устанавливается между таблицами contracts и hosts. Условие WHERE hosts, name сообщает, что мы ищем совпадения между строками из таблиц contracts и hosts, основываясь на содержимом поля из каждой таблицы. Наконец, строка SELECT, определяет поля, которые мы хотим включить в получаемые данные.



Содержание раздела