DB2 – система управления реляционными базами данных. Заданное число упорядоченных столбцов и неупорядоченные строки, страница 17

Cust#

Name

Street

1

2

3

4

5

6

7

8

Smith

Jones

Symone

Duncan

Jordan

Elliot

Madison

Mackey

1 The Close

38 High Street

21 Edgley

2 Lambe Lane

8 Comer Street

92 Honey Lane

101 High Road

43 Bye Close

Order#

Cust#

Product

Qty

1000

1001

1002

1003

1004

1005

1006

1007

4

6

2

4

5

1

1

3

Nut ¼ Inch

Screw 2 Inch

Washer ¼ Inch

Spanner

Screw Driver

Hummer

Nall 3 Inch

Null 3 Inch

100

200

150

1

1

1

200

1000

Order#

Cust#

Name

Street

Product

Qty

1000

1001

1002

1003

1004

1005

1006

1007

4

6

2

4

5

1

1

3

Duncan

Elliot

Jones

Duncan

Jordan

Smith

Smith

Symone

2 Lambe Lane

92 Honey Lane

38 High Street

2 Lambe Lane

8 Comer Street

1 The Close

1 The Close

21 Edgley

Nut ¼ Inch

Screw 2 Inch

Washer ¼ Inch

Spanner

Screw Driver

Hummer

Nall 3 Inch

Null 3 Inch

100

200

150

1

1

1

200

1000

Соединение позволяет в качестве результата получить комбинацию данных из двух или более таблиц.

В приведенном примере, результат нашего запроса включает столбцы из обоих таблиц: таблицы заказчиков и таблицы заказов

Элемент, по которому обычно связываются две таблицы – это первичный и внешний ключи.

Теоритически функция связывания есть ни что иное, как декартово произведение двух таблиц. Затем исключаются строки, которые не удовлетворяют условию выборки, заданному в WHERE. На практике выполняется некоторая оптимизация, ускоряющая операцию соединения, и полное декартово произведение не происходит.


Соединения                                                                                          

 


                                                                           Ключевые столбцы

                                                                              для соединения         

 


Cust#

Name

Street

1

2

3

4

5

6

7

8

Smith

Jones

Symone

Duncan

Jordan

Elliot

Madison

Mackey

1 The Close

38 High Street

21 Edgley

2 Lambe Lane

8 Comer Street

92 Honey Lane

101 High Road

43 Bye Close

Order#

Cust#

Product

Qty

1000

1001

1002

1003

1004

1005

1006

1007

6

2

4

4

5

1

1

3

Nut ¼ Inch

Screw 2 Inch

Washer ¼ Inch

Spanner

Screw Driver

Hummer

Nall 3 Inch

Null 3 Inch

100

200

150

1

1

1

200

1000

 

  Первичный            Родительская          Внешний        Зависимая

      ключ                         таблица                   ключ              таблица

 

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

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

Таблицы связываются использованием ключей.


Сложныесоединения

SELECT sale.*, contact_name

FROM sale, contact

WHERE sale.company_no = contact.company_no

AND sale.contact_code = contact.contact_code

 


Должны быть определены

 обе части ключа