Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОБД З Савчук ТО.doc
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
14 Мб
Скачать
☆

Обчислення за допомогою функції sum (сума)

У рядку ГРУППОВАЯ ОПЕРАЦИЯ обчислення виконують також за допомогою функції Sum (сума), що підсумовує значення одного чи декількох числових полів таблиці.

Як і у випадку з використанням функції Count, функція Sum вводиться в рядок ГРУППОВАЯ ОПЕРАЦИЯ.

Наприклад, для визначення вартості доставки товару в кожну країну одержувача, можна додати поле [СтранаПолучателя] у запит разом з елементом ГРУППИРОВКА, як показано на рисунку 4.102.

Рисунок 4.102 – Використання функції Sum в рядку ГРУППОВАЯ ОПЕРАЦИЯ

Результати виконання такого запиту подані на рисунку 4.103. Для кожної країни одержувача товару підрахована сумарна вартість доставки.

Якщо замість країни одержувача необхідно визначити прізвище співробітника – відправника товару, створюють багатотабличний запит, у якому таблиця СОТРУДНИКИ буде пов'язана з таблицею ЗАКАЗЫ за полем [КодСотрудника]. Для реалізації такого запиту в прикладі потрібно використати опцію ГРУППИРОВКА для поля [Фамилия] з таблиці СОТРУДНИКИ (рис. 4.104). Після виконання запиту інформація буде впорядковуватися за полем [Фамилия] з обчисленням сумарної вартості доставки від кожного окремого співробітника.

Для впорядкування записів в підсумковій таблиці за будь-яким полем, можна застосувати сортування. Для цього в рядку СОРТИРОВКА відповідного поля, за яким необхідно виконати сортування, вибирають зі списку, що розкривається, опцію ПО УБЫВАНИЮ або ПО ВОЗРАСТАНИЮ. На рисунку 4.104 показана налаштування для сортування ПО ВОЗРАСТАНИЮ в полі [Фамилия].

Рисунок 4.103 – Результат виконання запиту з використанням функції Sum в рядку ГРУППОВАЯ ОПЕРАЦИЯ

Рисунок 4.104 – Створення багатотабличного запиту для отримання інформації про відправника товару

Інші функції

У Access є цілий ряд функцій, що містяться в списку рядка ГРУППИРОВКА. За їх допомогою можна обчислювати, оцінювати і структуризувати інформацію в базі даних.

У таблиці 4.5 наведені ім'я і короткий опис таких функції.

Таблиця 4.5 – Функції Access, що містяться в списку рядка ГРУППИРОВКА

Функція

Призначення

1

2

ГРУППИРОВКА

Використовується для упорядкування результатів виконання запиту

Sum

Підсумовує всі значення поля за результатами виконання запиту

Avg

Обчислює середнє значення всіх чисел, що містяться в даному полі

Min

Знаходить мінімальне значення з усіх знайдених у результаті виконання запиту

Мах

Знаходить максимальне значення з усіх знайдених у результаті виконання запиту

Count

Підраховує кількість записів, що задовольняють критерій запиту

First

Виводить перший запис, знайдений у результаті виконання запиту (який задовольняє умову вибору)

Last

Виводить останній запис, знайдений у результаті виконання запиту (який задовольняє умову вибору)

Выражение

Повідомляє Access про ваше бажання виконати обчислення в полі

Условие

Вказує, що дане поле є частиною критерію пошуку

5 ПОШУК ІНФОРМАЦІЇ ЗА ДОПОМОГОЮ SQL EDITOR

Особливості використання оператора SELECT

Для пошуку інформації в базі даних в операторі SELECT використовують ключове слово DISTINCT і узагальнювальні функції:

SELECT [ALL | DISTINCT ] список_вибору

FROM список_таблиць_і_подань

[WHERE умови_пошуку]

[ORDER BY список_сортування]

При цьому DISTINCT використовується для усунення повторюваних рядків, а узагальнювальні функції (AGGREGATE FUNCTION) використовуються для обчислення сум, максимальних і мінімальних значень і підрахунку рядків. Речення ORDER BY, яке використовується для сортування результатів запиту, необов'язково записується після WHERE.

Сортування результатів запиту за допомогою ORDER BY

Речення ORDER BY дозволяє поліпшити подання одержуваних результатів. З його допомогою можна сортувати результати за будь-яким стовпцем чи виразом, зазначеним в списку вибору. Дані можуть сортуватися як за спаданням, так і за зростанням.

Узагальнений синтаксис речення ORDER BY в операторі SELECT має такий вигляд:

SELECT список_вибору

FROM список_таблиць

[WHERE умови пошуку]

[ORDER BY список_сортування]

Аналогічно списку речення SELECT, список речення ORDER BY може містити довільну кількість елементів. Якщо таких елементів декілька, то вони повинні бути розділені комами. Кожне речення ORDER BY забезпечує сортування за зростанням (за замовчуванням) або за спаданням (із ключовим словом DESC).

У більшості СУБД кожний елемент списку речення ORDER BY повинен бути присутнім у списку речення SELECT. У список речення ORDER BY можуть включатися вирази таких чотирьох типів (від простих до складних):

  • ім'я стовпця;

  • ім'я стовпця і арифметичні оператори чи функції;

  • присвоєний стовпцю заголовок виведення або виразу речення SELECT;

  • номер позиції стовпця (номер стовпця або виразу) в списку SELECT.

Основні принципи сортування даних

Набори символів, внутрішні коди і порядок сортування не визначаються в термінах команд SQL, але в більшості СУБД можна вибрати потрібний набір символів і відповідний йому порядок сортування при установленні бази даних за допомогою таких команд: CREATE CHARACTER SET, DROP CHARACTER SET, CREATE COLLATION, DROP COLLATION, COLLATE і COLLATION FROM.

Набір і послідовність символів встановлені на рівні системи. У Microsoft SQL Server і Adaptive Server Anywhere для зміни порядку сортування використовується системна процедура sp_helpsort. Результати виконання зазначеної системної процедури в цих системах відрізняються. У SQL Server використовується алгоритм сортування нечутливий до регістра.

Сортування за зростанням і за спаданням

За допомогою ключових слів ASC (за зростанням) і DESC (за спаданням) можна змінити порядок сортування в кожному окремому випадку. За замовчуванням дані сортуються в порядку зростання. Для зміни порядку сортування потрібно використовувати ключове слово DESC. Мова SQL містить засоби, за допомогою яких можна сортувати рядки за значеннями виразів, більш складних, ніж ім'я стовпця. Сортувати допускається:

  • за позицією виразу в списку SELECT (позиція зображена числом);

  • за заголовком виразу.

Ключові слова ASC і DESC аналогічно застосовуються і до цифр, і до заголовків стовпців.

При використанні номерів в реченні ORDER BY потрібно уважно стежити за змінами в списку вибору. При додаванні чи видаленні стовпців зі списку вибору результати таких запитів можуть змінитися.

Якщо в списку вираз визначений разом із заголовком, то за ним можна виконувати сортування. Завдяки цій можливості можна відмовитися від сортування за позицією.

Усунення повторюваних рядків за допомогою DISTINCT і ALL

За допомогою ключових слів DISTINCT і ALL у списку виразів можна визначити, що робити з повторюваними рядками результату: ALL повертає всі рядки, що задовольняють умови запиту; DISTINCT повертає тільки неповторювані рядки.

Якщо режим DISTINCT не зазначений явно, то за замовчуванням передбачається режим ALL. Тому ключове слово ALL використовується досить рідко, його заміняє відсутність слова DISTINCT. Базовий синтаксис цих пропозицій виглядає так:

SELECT [DISTINCT | ALL ] список_вибору

Речення DISTINCT (чи ALL) підпадає під такі вимоги:

  • у списку SELECT вказується тільки один раз;

  • у списку SELECT повинно розташовуватися на першому місці;

  • після речення кома не ставиться.

Якщо в списку виразів знаходиться множина елементів, при використанні ключового слова DISTINCT вибираються тільки рядки з унікальними комбінаціями значень цих елементів.

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

Хоча невизначені значення ніколи не рівні один одному, при використанні ключового слова DISTINCT всі невизначені значення в стовпці вважаються повторюваними. Наприклад, якби видавець з номером 0877 мав кілька книг з невизначеним типом (NULL), то при виконанні запиту з ключовим словом DISTINCT у результаті була б обрана тільки одна комбінація "видавець – NULL".