Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Визначення сортування (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; просмотров: 323.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...