- •Простая выборка
- •Select stock from ordsale
- •Выборка уникальных значений
- •Выборка вычисляемых значении
- •Расширенные sql-запросы. Выборка с условием. Ограничение выборки
- •From customer
- •Выборка с упорядочением
- •From customer
- •Order by creditlimit desc
- •Выборка из связанных таблиц
- •Простое соединение
- •Select ordsale.Customerno, goods.Name
- •Соединение с дополнительным условием
- •Select ordsale.Customerno
- •Соединение трех таблиц
- •Select distinct customer.Firstname, customer.Lastname from customer, ordsale, goods
- •Использование группировкам данных при организации запросов
- •Select stock, sum(quant)
- •Group by stock
- •Использование having
- •Exists (select * from ...)
- •Объединение множеств
Выборка из связанных таблиц
Способность «соединять» две или более таблицы в одну представляет собой одну из наиболее мощных возможностей реляционных баз данных. Фактически, наличие операции соединения является едва ли не главным, что отличает реляционные системы от систем других типов.
На практике при формировании запросов часто используются выборки из нескольких таблиц, т. к. в реляционных базах данных информация содержится не в одной отдельной таблице, а в совокупности связанных таблиц.
Простое соединение
Простое соединение как один способов выбора информации из нескольких связанных таблиц предполагает, что на выбираемую пользователем информацию не накладывается никаких дополнительных условий. Например, с помощью 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 |
Андрей |
Миронов |
Дарья |
Зайцева Зайцева |
Максим Ткаченко |
Ткаченко
|
Во многих случаях выборки из нескольких таблиц используются не только для ограничения выборки, но и для объединения данных из нескольких таблиц.