Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9.БАЗИ ДАНИХ.doc
Скачиваний:
6
Добавлен:
15.09.2019
Размер:
179.71 Кб
Скачать

11. Агрегатні функції.

За допомогою запиту можна одержувати узагальнене групове значення полів так само як і значення одного поля. Це робиться за допомогою агрегатих функцій. Агрегатні функції повертають одне значення для всієї групи таблиці. Всього таких функцій, що підтримуються будь-яким діалектом мови SQL, є 5:

* COUNT (лічильник) виробляє кількість рядків або не-NULL значення полів, які вибрав запит.

* SUM (Сума) знаходить арифметичну суму всіх вибраних значень даного поля.

* AVG (Середнє) виконує усреднення всіх вибраних значень даного поля.

* MAX знаходить найбільше з усіх вибраних значень даного поля.

* MIN знаходить найменше з усіх вибраних значень даного поля.

Агрегатні функції використовуються подібно іменам полів у команді SELECT запиту. Їх аргументами є імена стовпців. З SUM і AVG можуть використовуватись лише числові поля. Функції COUNT, MAX, и MIN, допускають використання і числових і символьних полів. Коли вони використовуються з символьними полями, MAX і MIN будуть транслювати їх у еквівалент ASCII, за яким MIN будет означати перше, а MAX – останнє значення за алфавітом.

AVG() – повертає середнє арифметичне значень для заданого стовпця. Результатом буде таблиця з додатковим стовпцем, що міститиме середнє значення, причому йому можна давати окрему назву:

SELECT AVG(amt) as avamt

From Orders;

Функція COUNT дещо відрізняється від усіх. Вона повертає кількість значень у даному столпці, або кількість рядків у таблиці.

Select count(snum) from orders;

Коли вона проводить підрахунок наявних значень у тому чи іншому стовпчику, перед іменем аргументу можна використовувати необовязкове ключове слово DISTINCT, яке вказує, що перед застосуванням цієї функції дублюючі рядки потрібно ігнорувати при підрахунку. Тобто виконується підрахунок лише унікальних значень у деякому полі. Можна використовувати її, наприклад, для підрахунку числа продавців які включені до таблиці.

МАХ(), MIN() повертають, відповідно найбільше і найменше значення стовпчика. Причому пошук можна здійснювати не серед всіх значень стовпчика, а лише у тих рядках, які задовольняють критерію, вказаному в директиві WHERE:

SELECT MAX (amt) as maxamt, MIN(amt) as minamt

FROM Orders

Пропозиція GROUP BY дозволяє визначити підмножену значень у певному полі в термінах іншого поля, і застосувати функцію агрегата до підмножини. Це дає можливість обєднувати поля і агрегатні функції у єдиній команді SELECT.

Згідно строгій інтерпретації ANSI SQL, не можна викорситовувати агрегат агрегата.

12. Операції з’єднання відношень.

Практична робота з БД показала, що для уникнення надлишковості інформації, що зберігається, і водночас для забезпечення її цілісності, цю інформацію доцільно розподілити між двома або більше таблицями. Коли ж потрібно переглянути загальні дані для деякої предметної області проводиться з’єднання таблиць, в результаті якого інформація однієї таблиці доповнюється даними з інших, зв’язаних з нею таблиць. Такі таблиці повинні мати спільні стовпці (найчастіше це поля первинного та зовнішнього ключів), що вказуються у директиві WHERE. З операцією з’єднання ми зустрічалися при розгляді операцій реляційної алгебри і познайомилися з операціями природного з’єднання, з’єднання за умовою та еквіз’єднанням. Саме про останній варіант пійде мова сьогодні, а саме про його різновіди. Розрізняють внутрішнє (INNER JOIN) та зовнішнє з’єднання (OUTER JOIN). Останнє ділиться всвою чергу на ліве LEFT та праве RIGHT зовнішні з’єднання (OUTER JOIN).

Внутрішнє з’єднання дозволяє повернути з двох таблиць лише ті рядки, які відповідають значенням зі спільних стовпців. Всі решта рядків ігноруються при такому з’єднанні.

  1. SELECT A.A#, Aname, B#, Bname

FROM A, B

WHERE A.A#=B.A#;

Зовнішнє з’єднання використовується для того, щоб вибирати з таблиці рядки, що містять як відповідні так і не відповідні значення для двох таблиць.Невідповідими є поля тих рядків, які не знаходять у пов’язаній таблиці

Операція зовнішнього з’єднання є позиціонною, тобто залежить від того до якої таблиці приєднуються рідки і яка таблиця є тією, що приєднується. Тому саме розрізняють операції лівого та прового зовнішніх з’єднань. При лівому зовнішньому з’єднанні повертаються невідповідні рядки з таблиці, що знаходиться ліворуч , а при правому – з таблиці, що знаходиться праворуч.

Записується оператор лівого зовнішнього з’єднання наступним чином:

  1. SELECT A.A#, A.name, B#, Bname

FROM A, B

WHERE A.A# *= B.A#;

При правому зовнішньому з’єднанні за основу береться таблиця, що стоїть справа від оператора з’єднання і до неї приєднуються відповідні поля з лівої таблиці, які відповідають значенням загального стовпчика, а поля, які не мають еквівалентів, заповнюються нулями.

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