Программирование >>  Sql: полное руководство 

1 ... 39 40 41 [ 42 ] 43 44 45 ... 264


AND REP = EMPL NUM AND AMOUNT > 25000.00

ORDER NUM

112987 113069 113045 112961

AMOUNT COMPANY

NAME

$27,500.00 $31,350.00 $45,000.00 $31,500.00

Acme Mfg.

Chen Associates

Zetacorp

J.P. Sinclair

Bill Adams Paul Cruz Larry Fitch Sam Clark

Как видно из рис. 7.5, в этом запросе используются два внешних ключа таблицы \ orders. Столбец cust является внешним ключом для таблицы Customers; он свя-узывает каждый заказ с клиентом, сделавшим его. Столбец rep является внешним ключом для таблицы salesreps, связывая каждый заказ со служашчм, принявшим его. Проще говоря, запрос связьшает каждый заказ с соответствующим клиентом и служащим.

Таблица CUSTOMERS

Таблица SALESREPS

CUST NUH

COMPANY

CUSTREP

CREDIT LIMIT

2111

JCP Inc

$50,000 00

2122

Flrst Corp.

$65,000.00

Acme Mfg

$50,000.00

EHPLNUH

NAME

REP OFFICE

Слою

Bill Adams

/109

Mary Jones

/ /102

Sue Smith

/ .

/

/

Таблица ORDERS

Результаты запроса

ORDER NUH

ORDER DA

CUST

AMOUNT

112987 113057 113042

31-DEC-89 18-FEB-90 02-FEB-90

2111 2113

<Ш) 103 104

10 24 5

$27,500.00 $600 00 $22,500.00

ORDER NUM

AMOUNT

COMPANY

NAME

Рис. 75. Запрос К:трт таблицам

А вот еще один запрос к трем таблицам, в котором используется другая комбинация отношений предок/потомок:

Вывести список заказов стоимостью выше $25000, включая имя клиента, сделавшего заказ, и имя служащего, закрепленного за этим клиентом.

SELECT ORDER NUM, AMOUNT, COMPANY, NAME FROM ORDERS, CUSTOMERS, SALESREPS WHERE CUST = CUST NUM

AND CUST REP = EMPL NUM AND AMOUNT > 25000.00

ORDER NUM AMOUNT COMPANY

112987 $27,500.00 Acme Mfg.

NAME

Bill Adams



113069 113045 112961

$ 31,350.00 $45,000.00 $31,500.00

Chen Associates

Zetacorp

J.P. Sinclair

Paul Cruz Larry Fitch Sam Clark

Ha рис. 7 6 изображены отношения, используемые в приведенном запросе. В первом отношении снова используется столбец сизт из таблицы orders в качестве внешнего ключа для таблицы customers. Во втором отношении используется столбец cust rep из таблицы customers в качестве внешнего ключа для таблицы salesreps Проше говоря, данный запрос связывает каждый заказ с клиентом, а каждого клиента - с закрепленным за ним служащим.

Таблица SALESREPS

EHPL NUH NAME

CJ05) 109 102

Bill Adams Hary Jones le Smith

AGE REP OFFICE

13 11 21

Таблица CUSTOMERS

CUST NUM

COMPANY \

CUST REP

CREDIT LIMIT

2111 2102

JCP Inc First Corp Acme Hfg

\ 103

$50,000.00 $65,000 00 $50,000 00

Таблица ORDERS

Результаты запроса

0RDER NUM

ORDER DATE

AMOUNT

31-DEC-89

$27.500 00

18-FEB-90

2111

$600 00

112987

02-FEB-90

2113

$22,500 00

113057

113042

Рис. 7.6. Запрос к трем таблицам с каскадным использованией отношений предок/потомок между таблицами -

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

Вывести список заказов стоимостью выше $25000, включая имя клиента, сделавшего заказ, имя закрепленного за ним служащего и офис, в котором работает этот служащий

SELECT ORDER NUM, AMOONT, COMPANY, NAME, CITY FROM ORDERS, CUSTOMERS, SALESREPS, OFFICES WHERE CUST = CUST NUM

AIJB CUST REP = EMPL NUM <AND REP OFFICE = OFFICE AND AMOUNT > 25000.00



order NUM

AMOUNT COMPANY

NAME

CITY

112987 $27,500.00

113069 $31,350.00

113045 $45,000.00

112961 $31,500.00

Acme Mfg.

Chen Associates

Zetacorp

J.P. Sinclair

Bill Adams Paul Cruz Larry Fitch Sam Clark

Atlanta Chicago Los Angeles New York

Ha рис. 7.7 изображены отношения предок/потомок, используемые в данном запросе. Фактически, он на один шаг расширяет последовательность объединения в прсдьгдушем запросе, связывая заказ с клиентом, клиента - с закрепленным за ним служащим, а служащего - с его офисом.

Таблица OFFICES

OFFICE

CITir

REGION

DenvDr

Western

New York

Eastern

Ch1cago

Eastern

<Ж>-4

lanta

Eastern

j!os-Anaeles

Western


EMPL NUH NAH

10! 107

Bill Adams lary Jones Smith

ДСЕ REP OFFICE

Таблица CUSTOHERS

CUST NUH

COHPANY \

CUST REP

CRFDIT L1HIT

2111

JCP Inc Flrst Corp Acme Hfg

\ 103

4ioi

$50,ООО 00 $65,000 00 $50,000 00

Таблица ORDERS

Результаты запроса

0RDER NUH

ORDER DkT CUST

AHOUNT

112987 113057 113042

31-DEC-89 18-FE8-90 02-FEB-90

2111 2113

$27,500 00 $60D 00 $22,500 00

Рис 7 7 Объединение четырех таблиц

Прочие объединения таблиц по равенству

Огромное множество многотабличных запросов основано на отношениях пре-Док/потомок, но в SQL не требуется, чтобы связанные столбцы представляли собой пару внешний ключ - первичный ключ . Любые два столбца из двух таблиц могут



1 ... 39 40 41 [ 42 ] 43 44 45 ... 264

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика