Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_po_bd.doc
Скачиваний:
10
Добавлен:
01.03.2025
Размер:
188 Кб
Скачать
☆

33. Явные операции соединения таблиц.

В предложении from может быть указана явная операция соединения 2-х или более таблиц.

  1. Внутреннее соединение( INNER JOIN)

Служебное слово INNER можно пропустить. просто слово join будет означать внутреннее соединение. INNER JOIN означает, что в результирующий набор попадут только те соединения строк таблиц, для которых значение предиката = истина.

From <табл.1> inner join <табл.2> on <предикат>

Пример. Найти производителей, номер модели и цену каждого компьютера, имеющегося в БД.

Select maker, pc.model, price from pc join product on pc.model=product.model

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

  1. Внешнее соединение LEFT JOIN означает, что помимо строк для которых выполняется условие предиката в результирующий набор попадут все остальные строки из 1-ой таблицы(левой). При этом отсутствующие значения полей из 1-ой таблицы будут заполнены NULL значениями.

Пример. Вывести все модели pc, их производителей и цену. Поле model указать 2 раза.

Select maker, product.model, pc.model, price from product left join pc on product.model=pc.model where type=’pc’

maker

model

model

Price

A

1232

1232

600

A

1232

1232

400

…

…

…

…

E

2113

NULL

NULL

Внешнее соединение RIGHT JOIN. Данное соединение обратно соединению LEFT JOIN. Т.е. в результирующий набор попадут все записи из 2-ой(правой) таблицы, которые соединяются только с теми строками из 1-ой табл, для которых вып-ся условие. Пример. см предыдущий пример Select maker, product.model, pc.model, price from pc right join product on pc.model= product.model where type=’pc’

  1. Полное соединение FULL JOIN

При таком соединении в результирующую табл попадут не только те строки, которые имеют одинаковое значение в сопоставляемых столбцах, но и все остальные строки исходных таблиц, не имеющих соответствующих значений в другой таблице. В этих строках все столбцы той таблицы, в которой не было найдено соответствия заполняются null значениями. Полное соединение – это комбинация левого и правого внешних соединений. Пример. сделаем полное соединение табл А и В по предикату. select *.A, *.B from A full join B on A.a=B.c

a

b

c

d

1

2

null

null

2

1

2

4

null

null

3

3

34.Традиционные операции над множествами. Декартово произведение, объединение.

Трад .операции над мн-ми – это объединение, пересечение, разность и декартово произведение. Декартово произведение. При дек.произведении каждая строка из одной таблицы соединяется с кажд строкой из др таблицы. В рез-те кол-во строк результирующего набора равно произведению кол-ва строк 1-го набора на кол-во строк 2-ого набора.

Ранее уже рассмотрели реализацию декартового произведения, когда в предложении from перечисляли через запятую имена таблиц.

Декартово произведение – cross join

Пример. рассмотрим декартово прoизведение табл laptop и product (выведем модель). I) select laptop.model, product.model from laptop cross join product on laprop.model=product.model

l.model

p.model

1298

1232

1298

1233

…

…

1298

2113

1321

1232

…

…

1321

2113

…

…

Кол-во строк= 6*16=96 или дек произ можно записать так: II) select laptop.model, product.model from laptop, product В чистом виде дек.произ-ие практически не используется, оно яв-ся промежуточным значением горизонтальной проекции. Объединение. Для объединения запросов исп-ют служ слово union. общий вид: <запрoc 1> union <запрос 2>

Оператор union объединяет выходные строки каждого из запросов в один результирующий набор. Можно связать любое число запросов. При объединении запросов должны выполнятся след условия: 1) кол-во выходных столбцов кажд из запросов должны быть одинаковыми; 2) выходные столбцы кажд из запросов должны быть сравнимыми между собой( в порядке их следования) по типам данных; 3) в результирующем наборе исп-ся имена столбцов заданные в 1-ом запросе. пример. найти номера моделей и цены ПК и ПК-блокнотов. select model, price

from pc union select model, price

from laptop

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]