Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Визначення сортування (ORDER BY)
Приклад. Видати всі записи продажу товару "Кока-кола", відсортувавши їх по кожному покупцеві SELECT POKUP, DAT_PROD, TOVAR, KILK FROM PRODAZH WHERE TOVAR = "Кока-кола" ORDER BY POKUP Приклад. Видати всі записи з таблиці PRODAZH, відсортувавши їх по кожному покупцеві, для кожного покупця - по назві товару, для кожного товару - по даті SELECT POKUP, TOVAR, DAT_PROD, KILK FROM PRODAZH ORDER BY POKUP, TOVAR, DAT_PROD Усунення значень, що повторюються (DISTINCT) Часто в результуючий НД необхідно включати не всі записи з однаковим значенням якого-небудь поля (комбінації полів), а тільки одну з них. В цьому випадку після SELECT указують ключове слово DISTINCT. Приклад. Видати тільки найменування всіх відпущених з складу товарів SELECT DISTINCT TOVAR FROM PRODAZH Розрахунок значень обчислювальних полів Для розрахунку значень обчислювальних полів результуючого НД використовуються арифметичні вирази. Приклад. Видати всі записи про продаж товарів з таблиці PRODAZH, для кожного продажу товару розрахувати загальну вартість відпущеного товару і присвоїти обчислювальному полю ім'я VART SELECT PR.*, T.CINA, PR.KILK * T.CINA AS VART FROM PRODAZH PR, TOVARY T WHERE PR.TOVAR = T.TOVAR Агрегатні функції Агрегатні функції призначені для видачі підсумкових значень. До агрегатних відносяться функції: COUNT (<вираз>) – підраховує кількість входжень значення виразу в усі записи результуючого НД; SUM(<вираз>) –підсумовує значення виразу; AVG (<вираз>) –знаходить середнє значення; МАХ(<вираз>) –визначає максимальне значення; МIN(<вираз>) –визначає мінімальне значення. Приклад. Підрахувати кількість покупців, що придбали товар на складі SELECT COUNT(DISTINCT POKUP) AS COUNT_POKUP FROM PRODAZH Приклад. Обчислити загальну вартість відпущених товарів за 10.01.2007 SELECT SUM(PR.KILK * T.CINA) AS ZAG_CINA FROM PRODAZH PR, TOVARY T WHERE (PR.TOVAR = T.TOVAR) AND (PR.DAT_PROD = "10.01.2007") Групування записів (GROUP BY) Приклад. Видати загальний продаж по кожному з товарів SELECT PR.TOVAR, SUM(PR.KILK) AS PROD FROM PRODAZH PR GROUP BY PR.TOVAR Приклад. Видати загальну суму відпустки по кожному з товарів (результат на мал. 25.15) SELECT R.TOVAR, SUM(R.KILK * T.CINA) FROM PRODAZH R, TOVARY T WHERE T.TOVAR = R.TOVAR GROUP BY R.TOVAR Приклад. Видати загальну суму продажу по кожному з товарів на кожну дату SELECT PR.TOVAR, PR.DAT_PROD, SUM(PR.KILK * T.CINA) FROM PRODAZH PR, TOVARY T WHERE T.TOVAR = PR.TOVAR GROUP BY PR.TOVAR, PR.DAT_PROD Приклад. Видати кількість покупців на кожну дату SELECT DAT_PROD, COUNT(DISTINCT POKUP) FROM PRODAZH GROUP BY DAT_PROD Накладення обмежень на угрупування записів (HAVING) Приклад. Видати мінімальні покупки товару в одиницях для всіх покупців, у яких мінімальна кількість товару, що купується, не менше 100 одиниць. SELECT POKUP, MIN(KILK) FROM PRODAZH GROUP BY POKUP HAVING MIN(KILK) >= 100 Приклад. Видати загальну кількість купленого товару (у одиницях) для всіх покупців, у яких мінімальна кількість товару, що купується, не менше 100 одиниць. SELECT POKUP, SUM(KILK) FROM PRODAZH GROUP BY POKUP HAVING MIN(KILK) >= 100 Прим.: у умові пошуку WHERE не можна указувати агрегатні функції. Приклад. Видати на кожну дату число продажів товарів, в яких кількість товару, що відпускається, більше або рівні 1000 одиниць. SELECT DAT_PROD, COUNT(*) FROM PRODAZH WHERE KILK >= 1000 GROUP BY DAT_PROD Приклад. Видати дати продажів товарів, в яких кількість товару, що продається, більше або рівна 1000 одиниць. У результуючий НД включити тільки ті групи, по яких число таких продажів товарів більше 1. SELECT DAT_PROD, COUNT(*) FROM PRODAZH WHERE KILK >= 1000 GROUP BY DAT_PROD HAVING COUNT(*)> 1 Задання складних умов пошуку (WHERE) Використання логічних виразів (AND, OR, NOT) Приклад. Видати всі записи з таблиці PRODAZH, для кожного товару видати його ціну з таблиці TOVARY, для кожного покупця видати його місто з таблиці POKUPCI. SELECT PR.*, T.CINA, PO.ADRESA FROM PRODAZH PR, TOVARY T, POKUPCI PO WHERE (PR.TOVAR = T.TOVAR) AND (PR.POKUP = PO.POKUP) Приклад. Видати записи з таблиці PRODAZH плюс відповідну кожному товару ціну з таблиці TOVARY. При цьому кількість продажів товару має бути не більше 30 або повинна бути не менше 3000, і назва покупця має бути вказана. SELECT PR.*, T.CINA FROM PRODAZH PR, TOVARY T WHERE (PR.TOVAR = T.TOVAR) AND ((PR.KILK <=30) OR (PR.KILK >= 3000)) AND (PR.POKUP IS NOT NULL) ORDER BY PR.KILK Порівняння поля з результатом обчислення виразу Приклад. Видати з таблиці PRODAZH дату, товар, вартість відпущеного товару. При цьому показувати тільки записи, у яких вартість відпущеного товару більше 120. SELECT PR.DAT_PROD, PR.TOVAR, (PR.KILK * T.CINA) AS VART FROM PRODAZH PR, TOVARY T WHERE (PR.TOVAR = T.TOVAR) AND ((PR.KILK * T.CINA) > 120) ORDER BY PR.DAT_PROD Використання діапазонів (BETWEEN) Приклад. Видати зведення про всі відпустки товару, де кількість відпущеного товару (у одиницях) лежить в діапазоні 1000..3000. SELECT * FROM PRODAZH WHERE KILK BETWEEN 1000 AND 3000 Використання списку значень (IN) Приклад. Видати зведення про всі продажі товару, де кількість відпущеного товару (у одиницях) рівна або 100, або 1000, або 3000. SELECT * FROM PRODAZH WHERE KILK IN (100, 1000, 3000) Використання підрядків (STARTING) Приклад. Видати всі товари, що починаються з букви "С". SELECT * FROM TOVARY WHERE TOVAR STARTING WITH "C" Використання підрядків (CONTAINING) Приклад. Видати список всіх покупців, чия адреса містить підрядок "Львів" SELECT * FROM POKUPCI WHERE ADRESA CONTAINING "Львів" Використання функції зведення до великих літер (UPPER) Приклад. Нехай нам необхідно знайти всіх покупців з Києва. Проте в таблиці POKUPCI два покупці мають в полі MISTO ім'я міста Києва, проте в одному випадку це значення 'Київ', в іншому 'КИЇВ'. Для отримання повного результуючого НД: SELECT * FROM POKUPCI WHERE UPPER(MISTO)= 'КИЇВ' Використання шаблонів порівняння (LIKE) Приклад. Нехай потрібно видати інформацію про покупця, ім'я якого ми забули, і назву вулиці ми пам'ятаємо неточно. Точно пам'ятаємо, що назва вулиці закінчується на 'цька'. Тоді потрібно виконати такий запит. SELECT * FROM POKUPCI WHERE ADRESA LIKE "%цька%" |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 360. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |