таблицы A, для которых нет соответствующих строк в таблице B,
система предоставит строку, содержащую NULL во всех выражениях в
списке столбцов, которые содержат столбцы из таблицы B.
П р и м е р ы
1.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY информацию о
книгах, поставленных продавцам за период с 24.01.2006 по 12.02.2006,
указав для выводимого значения даты специальный формат вывода:
SELECT SALESMAN, AUTHOR, TITLE,
TO_CHAR(DATE_DELIVERY, ‘DD MONTH YYYY’)
FROM BOOKS, BOOKS_DELIVERY WHERE
BOOKS.CODE_BOOK = BOOKS_DELIVERY.CODE_BOOK AND
DATE_DELIVERY BETWEEN '24-01-06' AND '12-02-06'
ORDER BY SALESMAN, AUTHOR;
2.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY по указанному
продавцу перечень издательств и жанров имеющихся у него книг без по-
вторения; чтобы задать фамилию продавца, использовать переменную
подстановки:
SELECT DISTINCT SALESMAN, PUBLISH_HOUSE,
GENRE
FROM BOOKS, BOOKS_DELIVERY
WHERE BOOKS_DELIVERY.CODE_BOOK = BOOKS.CODE_BOOK
AND SALESMAN = '&SALESMAN'
ORDER BY PUBLISH_HOUSE, GENRE;
3.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY список продав-
цов, у которых в наличии не менее 10 книг, указав данные об общем ко-
личестве и суммарной стоимости имеющихся у них книг:
SELECT SALESMAN, SUM(QUANTITY), SUM(PRICE*QUANTITY)
FROM BOOKS, BOOKS_DELIVERY
WHERE BOOKS_DELIVERY.CODE_BOOK = BOOKS.CODE_BOOK
GROUP BY SALESMAN HAVING SUM(QUANTITY) >= 10;
4.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY по каждому из-
дательству информацию об общем количестве и суммарной стоимости
поставленных ими книг каждому продавцу:
SELECT PUBLISH_HOUSE, SALESMAN, COUNT(QUANTITY),
SUM(PRICE*QUANTITY)
FROM BOOKS, BOOKS_DELIVERY
WHERE BOOKS.CODE_BOOK = BOOKS_DELIVERY.CODE_BOOK
GROUP BY PUBLISH_HOUSE, SALESMAN;
149
5.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY по каждой кни-
ге, сведения о которой имеются в таблице BOOKS, информацию о коли-
честве продавцов, которым она была поставлена:
SELECT TITLE, AUTHOR, COUNT(SALESMAN)
FROM BOOKS,
BOOKS_DELIVERY WHERE BOOKS_DELIVERY.CODE_BOOK
(+)= BOOKS.CODE_BOOK GROUP BY TITLE, AUTHOR;
6.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY по каждому
продавцу информацию об отсутствующих у них книгах, общий перечень
которых находится в таблице BOOKS:
SELECT SALESMAN, TITLE,
PRICE FROM BOOKS,
BOOKS_DELIVERY
MINUS
SELECT SALESMAN, TITLE, PRICE FROM BOOKS,
BOOKS_DELIVERY WHERE BOOKS_DELIVERY.CODE_BOOK =
BOOKS.CODE_BOOK;
7.
Выбрать из таблицы BOOKS информацию (название, цена) о трех
самых дешевых книгах; предполагается, что в перечне книг не более трех
различных книг с минимальной ценой:
SELECT А.TITLE, А.PRICE
FROM BOOKS А, BOOKS В WHERE
А.PRICE >= В.PRICE
GROUP BY А.TITLE, А.PRICE HAVING COUNT(В.TITLE) <= 3
ORDER BY А.TITLE;
8.
Выбрать из таблиц BOOKS и BOOKS_DELIVERY информацию
(название, фамилия автора) о книгах, которые не были поставлены в ма-
газин для продажи:
SELECT TITLE, AUTHOR FROM BOOKS WHERE
NOT EXISTS
(SELECT * FROM BOOKS_DELIVERY WHERE
BOOKS_DELIVERY.CODE_BOOK = BOOKS.CODE_BOOK);
Достарыңызбен бөлісу: