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

Выборка из связанных таблиц

Способность «соединять» две или более таблицы в одну представляет собой одну из наиболее мощных возможностей реляционных баз данных. Фактически, наличие операции соединения является едва ли не главным, что отличает реляционные системы от систем других типов.

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

Простое соединение

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

Select ordsale.Customerno, goods.Name

FROM ORDSALE, GOODS WHERE ORDSALE.STOCK=GOODS.STOCK

будет получен список всех товаров, проданных покупателям:

CUSTOMERNO

NAME

2

BORLAND C++

10

PARADOX for Windows

18

Книга TURBO C++

2

Книга TURBO C++

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

Соединение с дополнительным условием

При выполнении выборки информации из базы данных, используя ме­ханизм соединения с дополнительным условием, на выбираемую пользовате­лем информацию. Использование выборки на основе соединения с дополни­тельным условием возможно только в том случае, если таблицы, включенные в запрос, связаны по одному и тому же ключевому полю. Например, для вы­бора из базы данных списка покупателей, которым проданы компьютеры Pentium4. служит SQL- запрос:

Select ordsale.Customerno

FROM ORDSALE, GOODS WHERE ORDSALE.STOCK=GOODS.STOCK

AND GOODS.NAME="Pentium4"

Результатом выполнения данного запроса является таблица:

ORDSALE. СUSTOMERNO

2

2

11

16

19

Соединение трех таблиц

Пример SQL-запроса для выбора информации из трех связанных таблиц: вывести на экран фамилии и имена всех покупателей, которые при­обрел и Pentium4.

Select distinct customer.Firstname, customer.Lastname from customer, ordsale, goods

WHERE CUSTOMER.CUSTOMERNO-ORDSALE.CUSTOMERNO AND ORDSALE.STOCK=GOODS.STOCK

AND GOODS.NAME="Pentium4"

После выполнения данного запроса на экран будет выведена таблица, которая будет содержать имена и фамилии покупателей, купивших Pentium4:

CUSTOMER.FIRSTNAME

CUSTOMER.LASTNAME

Андрей

Миронов

Дарья

Зайцева

Зайцева

Максим

Ткаченко

Ткаченко

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

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