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

4.2.2. Інформаційно–пошукові запити

Наведемо приклади інформаційно пошукових запитів відносно тих задач, які були окреслені в підрозділі «2.4. Інформаційно-довідкові задачі». Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.

4.2.2.1. Інформаційні запити пов’язані з виданнями

Запит 1. Вивести перелік назв видань, які були видані в 2005 році видавництвом «ВЕСЕЛКА». Отримані дані відсортувати по назві видань.

SELECT t.TitleText FROM PUB_TITLE t, PUBLICATION p, PUBLISHING_HOUSE h WHERE p.PTitle = t.PTitle AND p.PubHID = h.PubHID AND UPPER(h. Name) = ‘ВЕСЕЛКА’ AND p.Year = 2005 ORDER BY t.TitleText;

Запит 2. Вивести кількість видань, автором яких є Шекспір і які були видані після 2000 року.

SELECT count(*) as “Кількість видань автора Шекспіра виданих після 2000 р” FROM PUBLICATION p, AUTHOR a, CO_AUTHOR c WHERE c.AuID = a.AuID AND c.PubID=p.PubID AND UPPER(a.Surname) = ‘ШЕКСПІР’ AND p.Year > 2000;

Запит 3. Вивести суму, на яку було закуплено видань у видавництва «ПРОМІНЬ» у 2003 році.

SELECT Sum(с.Price) as “Сума на яку закуплено видань в 2003 р у «ПРОМІНЬ»” FROM PUBLICATION p, PUBLISHING_HOUSE h, PUB_COVER c WHERE p.PubHID = h.PubHID p.PubID = c.PubID AND UPPER(h. Name) = ‘Промінь’ AND p.Year = 2003;

4.2.2.2. Інформаційні запити пов’язані із розміщенням та реєстрацією видання

Запит 1. Вивести кількість видань, які розміщені в 3 кімнаті на 2 стелажі.

SELECT count(*) FROM PUBLICATION p, PUB_COVER c, REGISTRATION r, PLACE d WHERE c.PubID = p.PubID AND r.CovID = c.CovID AND r.PlaceID = d.PlaceID AND d.RoomNo = ‘3’ AND d.ShelNo = ‘2’;

Запит 2. Вивести перелік видань (назву та автора), які були зареєстровані пізніше 2 січня 2005 року. Сортувати по назві.

SELECT t.TitleText, a.Surname, a.Name FROM PUB_TITLE t, PUBLICATION p, AUTHOR a, CO_AUTHOR b, PUB_COVER c, REGISTRATION r WHERE p.PTitle = t.PTitle AND b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND r.CovID = c.CovID AND r.PlaceDate > TO_DATE(’02/01/2005’, ’DD/MM/YYYY’)

ORDER BY t. TitleText;

Запит 3. Вивести назви усіх видань, які написані в публіцистичному стилі автором Марковецьким і зареєстровані до 1 січня 2007 року.

SELECT t.TitleText FROM PUB_TITLE t, PUBLICATION p, PUB_STYLE s, AUTHOR a, CO_AUTHOR b, PUB_COVER c, REGISTRATION r WHERE p.PTitle = t.PTitle AND p.PStyle = s.PStyle AND c.PubID = p.PubID AND r.CovID = c.CovID AND UPPER(a.Surname) = ‘Марковецький’ AND UPPER(s.Description) = ‘публіцистичний’ AND r.PlaceDate < TO_DATE(’01.01.2007’, ’DD/MM/YYYY’);

4.2.2.3. Інформаційні запити пов’язані із видачею літератури читачам

Запит 1. Вивести кількість читачів, які мають прізвище Петров і читають Пушкіна.

SELECT count(distinct rt.Surname) FROM PUBLICATION p, AUTHOR a, CO_AUTHOR b, READERS_TICKET rt, PUB_COVER c, GIVING g WHERE b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND g.CovID = c.CovID AND g.TicketID = rt.TicketID AND a.Surname = ‘Пушкін’ AND rt.Surname = ‘Петров’ ;

Запит 2. Вивести назви та авторів видання, які були видані читачам 6 квітня 2006 року.

SELECT t.TitleText, a.Surname FROM PUBLICATION p, AUTHOR a, CO_AUTHOR b, PUB_COVER c, GIVING g WHERE t.PTitle = p.PTitle AND b.PubID = p.PubID AND b.AuID = a.AuID AND c.PubID = p.PubID AND g.CovID = c.CovID AND g.GivDate = TO_DATE(’06.04.2006’, ’DD/MM/YYYY’);

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