Теоретичні відомості

1 ОПЕРАТОРИ AND (І) ТА OR (АБО)

AND (І) і OR (АБО) – оператори булевої логіки, які використовуються, відповідно, для поєднання чи перерахування критеріїв, що враховуються при опрацюванні запитів предметної області.

Існують такі особливості застосування зазначених операторів, які слід враховувати при їх виборі: оператор AND (І) звужує кількість варіантів можливих відповідей в результаті опрацювання інформації, а оператор OR (АБО), навпаки, її розширює. Наприклад, якщо необхідно знайти особи жіночої статі, у яких блакитні очі І руде волосся, то список кандидатів буде значно меншим, ніж список жінок АБО чоловіків із блакитними очима, АБО рудим волоссям.

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

Пошук значень в заданому діапазоні

Використання оператора І з метою завдання умов відбору записів бази даних при створенні запиту передбачає введення в одному рядку двох умов, які розділяються словом AND (рис 4.80). Розділові знаки Access проставить сама. При цьому дату потрібно взяти в знаки #.

Для пошуку записів бази даних в межах заданого інтервалу дат, наприклад, виконання замовлення між 1 січня 1999 року і 1 січня 2000 року, при створенні запиту в умові їх відбору доцільно використовувати критерій AND (І), як показано на рисунку 4.80.

Рисунок 4.80 – Введення умови відбору записів при створенні запиту з використанням оператора AND

Access починає виконання запиту, переглядаючи записи таблиці, і задаючи кожному запису перше питання: "Дата була введена саме 1 січня 1999 року АБО пізніше?" При цьому, якщо запис датується раніше, то Access його ігнорує і переходить до аналізу іншого запису. Якщо дата була введена 1 січня 1999 року чи пізніше, то Access задає друге питання: "Вона введена до 1 січня 2000 року?" Якщо умова виконується, то запис включається в результуючий список. Якщо ні, вона ігнорується і програма переходить до аналізу іншого запису. Слід звернути увагу, що використання умови "більше чи дорівнює" стосовно дати 1 січня 1999 року забезпечує включення в результат опрацювання інформації записів, що мають значення дати 01.01.1999р.

Аналогічно використання оператора І може бути доцільним, аби задати умову типу "між" для будь-яких типів даних (наприклад, пошуку всіх чисел, що знаходяться у певному інтервалі значень, або імен, що містять певний набір букв).

Використання декількох операторів І (AND) для пошуку даних

Одна із особливостей Access полягає в її гнучкості. Access не обмежує кількості критеріїв в умовах запиту щодо пошуку даних й забезпечує такі можливості використанням оператора І (AND).

При цьому кожна умова, що вводиться, повинна розташовуватися в одному рядку запиту. Після того як був запущений запит на виконання, Access перевірить кожен запис на відповідність всім умовам, що містяться в його рядку, та сформує таблицю-результат. На рисунку 4.81 наводиться приклад використання двох умов в запиті. Оскільки всі умови розташовуються в одному рядку, при їх виконанні використовується оператор І (AND).

Якщо аналізується потужна база даних і потрібно врахувати при пошуку даних групу критеріїв, то найефективніший спосіб опрацювання інформації полягає в застосуванні декількох операторів І (AND). Крім того, можна використати всі доступні інструменти Access, у тому числі і фільтр, що значно полегшує роботу з додатком без вимог фахового досвіту.

Рисунок 4.81 – Використання оператора І (AND) для врахування умов в запиті

Використання декількох операторів АБО (OR) для пошуку даних

Якщо потрібно виконати пошук даних за допомогою опції РАСШИРЕННЫЙ ФИЛЬТР (наприклад, вивести список громадян, що проживають в Росії, АБО (OR) в Україні, АБО (OR)в Грузії), то додатком Access організовується пошук даних за умовою АБО (OR). Ця опція вбудована в діалогове вікно запиту.

Для того, щоб врахувати оператор АБО (OR) в умовах пошуку, для кожної умови АБО (OR) потрібно використати окремий рядок у вікні запиту (рис. 4.82 та рис. 4.83).

Рисунок 4.82 – Використання оператора АБО (OR) для врахування умов запиту щодо одного поля

Рисунок 4.83 – Використання оператора АБО (OR) для врахування умов запиту щодо різних полів

Використання операторів І (AND) та АБО (OR) для пошуку даних

У деяких випадках при створенні запиту використання операторів одного типу (тільки І (AND) чи АБО (OR)) буває недостатнім. Прикладом такого запиту може бути пошук інформації в різних групах даних. При цьому потрібно використати оператори, які забезпечують відбір даних в групу (за допомогою оператора І (AND)), та відібрати лише такі з них, що задовольняють певні критерії (оператор АБО (OR)).

Якщо необхідно скомбінувати кілька різних умов при створенні запиту, то слід звернути увагу на такі особливості використання операторів І (AND) та АБО (OR):

- всі оператори І (AND) розташовуються на одному рядку, якщо вони поєднуються в одну умову;

- оператори АБО (OR)розташовуються в різних рядках і кожен рядок перевіряється окремо;

- якщо потрібно використати групу операторів АБО (OR), то вони повинні розташовуватися в різних рядках;

- щоб додати оператор АБО (OR) в умову запиту, його вводять в новий рядок у полі, що опрацьовується. Враховується введена умова запиту після натиснення клавіші <Enter>.

2 ОБЧИСЛЕННЯ В ЗАПИТАХ

Одне з основних правил побудови бази даних вимагає використовувати мінімальну кількість полів у таблицях бази даних. Для того, щоб таблиці бази даних не містили "зайвих" полів, можна створити нове поля, що обчислюється на основі вже наявної в базі даних інформації.

Поле, що обчислюється, може створюватись як в запиті, так і в звіті.

Прості обчислення

Перед створенням поля, що обчислюється в запиті, необхідно визначити, які поля таблиць бази даних будуть опрацьовуватись. Access здатен створити обчислювальне поле з опрацюванням тільки тих полів таблиць бази даних, що знаходяться у верхній частині вікна ЗАПРОС НА ВЫБОРКУ (рис. 4.84).

Для створення поля, що обчислюється, потрібно виконати такі дії:

- вибрати область введення в рядку ПОЛЕ, де повинен розміститися результат;

- ввести формулу, за якою потрібно провести розрахунок.

Для обчислювальних полів Access використовує спеціальний синтаксис. Необхідно ввести команди для опрацювання інформації та імена полів, що опрацьовуються, у квадратних дужках. Всі інші символи, які використовуються у виразах (наприклад, числа), Access вважає постійними величинами.

Розглянемо приклад. Ціни на товари підвищилися на 47%. Для обчислення нової ціни товарів потрібно додати 47% до попередньої ціни. Access не розпізнає символ відсотка (%), і тому необхідно перевести його в десяткове число у виразі, за яким потрібно провести розрахунок. Створення нового обчислювального поля в таблиці бази даних, що містить поле [Цена], буде виконано Access за виразом: [Цена]+([Цена]·0,47).

Рисунок 4.84 – Визначення полів, що використовуються при створенні обчислювального поля, у діалоговому вікні ЗАПРОС НА ВЫБОРКУ

Обчислення може бути проведеним в будь-якому полі, що знаходиться в рядку ПОЛЕ. На рисунку 4.85 показано процес введення формули для обчислення за розглянутим прикладом.

Рисунок 4.85 – Приклад введення формули для обчислень

Ім'я кожного поля, що використовується у формулі, потрібно вводити вручну, а не перетягувати його зі списку таблиці, тому що в цьому випадку буде додане саме поле, а не його ім'я.

Для введення у формулу полів з різних таблиць бази даних, для кожного поля вказують ім'я відповідної таблиці. При цьому вводять в квадратних дужках ім'я таблиці, ставлять знак оклику і вводять в квадратних дужках ім'я поля цієї таблиці: [Ім'я таблиці]![Ім'я поля таблиці].

Після виконання запиту, Access виведе на екран таблицю, у якій будуть знаходитися відповідні поля і додатковий стовпець обчисленого значення. Ім'я обчислювального поля Access може присвоїти за замовчуванням (наприклад, ВЫРАЖЕНИЕ 1 на рис.4.86). Для присвоєння обчислювальному полю іншого імені необхідно замінити ВЫРАЖЕНИЕ 1 будь-яким іншим іменем.

Рисунок 4.86 – Таблиця з обчислювальним полем ВЫРАЖЕНИЕ 1

Крім зміни імені поля, можна змінити і його формат. Для цього в режимі КОНСТРУКТОРа запиту натискають праву кнопку миші на полі, що обчислюється, і з меню, що з’явилось, вибирають послідовність команд СВОЙСТВА ПОЛЯÞФОРМАТ ПОЛЯ, й кнопку списку, який розкривається (рис. 4.87) (наприклад, ДЕНЕЖНЫЙ). Цей формат застосовується для всіх значень поля.

Рисунок 4.87 – Діалогове вікно СВОЙСТВА ПОЛЯ

Складні обчислення

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

На рисунку 4.88 зображено таблицю запиту, в якій обчислюється три вирази з іменами ВЫРАЖЕНИЕ 1, ВЫРАЖЕНИЕ 2, УВЕЛИЧЕНИЕ. І в першому, і в другому виразі використовується поле [Цена], а в третьому виразі використовується результат, отриманий при обчисленні першого виразу.

Рисунок 4.88 – Приклад запиту, в якому обчислюється три поля

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

Кожний вираз має своє ім'я (це текст, що знаходиться безпосередньо перед самим виразом). Для використання певного обчислювального поля в іншому виразі, що обчислюється, його ім'я подають в квадратних дужках, як ім'я звичайного поля. Якщо змінити ім'я одного з полів, що бере участь у подальших обчисленнях, необхідно змінити і посилання на це поле. (рис.4.89).

Якщо Ви змінюєте і’мя одного з полів… Вам необхідно змінити і посилання на це поле

Рисунок 4.89 – Використання обчислювальних полів [Новая цена] і [Старая цена] при створенні обчислювального поля УВЕЛИЧЕНИЕ

При необхідності включити у формулу значення, якого немає в базі даних, але воно може бути заданим користувачем, необхідно створити поле, ім'я якого буде використовуватися у формулі. Наприклад, якщо у поле [Новая цена], ввести формулу [Цена]+[Цена]*[Процент увеличения], а значення поля [Процент увеличения] відсутні, при виконанні запиту Access виведе на екран діалогове вікно ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА, в якому це значення можна ввести (рис. 4.90).

Рисунок 4.90 – Діалогове вікно ВВЕДИТЕ ЗНАЧЕНИЕ ПАРАМЕТРА

3 ПОБУДОВА ВИРАЗІВ

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

У виразах можна використовувати не тільки числа, але і текст. На рисунку 4.91 зображена одна з розповсюджених формул, яка використовується для об'єднання полів [Имя] і [Фамилия].

Рисунок 4.91 – Створення виразу з використанням текстових полів

Ця формула має структуру: [Имя]&" "&[Фамилия], де подвійні лапки подаються через один пробіл.

При виконанні такого запиту Access поєднує інформацію з двох полів і вводить між ними пробіл. Слід звернути увагу, що кожне ім'я і прізвище з'являються в тому вигляді, в якому вони знаходяться в базі даних.

Побудова виразів обчислювальних полів

Для введення виразу при створенні поля, яке обчислюється, необхідно виконати послідовність команд ПОСТРОИТЬÞПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ.

У верхній частині діалогового вікна ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ (рис. 4.92) розташована область, де фактично створюється вираз, а нижче знаходяться оператори, які можна використовувати при цьому:

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

Папки, в яких містяться Поле з елементами, які Поле, в якому

елементи бази даних містяться в вибраній папці відображуються

деталі елементів

Рисунок 4.92 – Діалогове вікно ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ

- оператори додавання, віднімання, множення і ділення для виконання простих арифметичних дій;

- оператор амперсанд (&) для об'єднання двох текстових полів;

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

У нижній частині вікна знаходяться три секції:

- папки, в яких містяться елементи бази даних;

- поле, в якому містяться елементи вибраної папки;

- поле, в якому відображені деталі елементів вибраної папки.

Для того, щоб додати поле однієї з таблиць бази даних у вираз, необхідно:

- відкрити папку ТАБЛИЦЫ;

- вибрати ім’я таблиці, поле якої додається у вираз;

- вибрати поле поточної таблиці подвійним натисненням на його імені.

На рисунку 4.93 у вікні ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ відкрита папка [Товары], а ім'я поля [МинимальныйЗапас] використовується у виразі, що створюється.

Рисунок 4.93 – Приклад вибору імені поля для додання у вираз

Слід звернути увагу, що ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ самостійно включає ім'я таблиці і знак оклику перед ім'ям поля. Вираз приймає такий вигляд:

[Ім'я таблиці]! [Ім'я поля]

Папки, що знаходяться в першій секції вікна ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ, містять не тільки інформацію бази даних, але і списки вбудованих функцій, операторів і констант. Ці дані впорядковані за категоріями у кожній окремій папці.

Папка ВСТРОЕННЫЕ ФУНКЦИИ містить перелік вбудованих функцій, а також функцій, що були введені в систему користувачем. Для виклику однієї з вбудованих функцій відкривають папку ВСТРОЕННЫЕ ФУНКЦИИ, вибирають відповідну групу функцій із другої секції та необхідну функцію у третій (правій) секції вікна. На рисунку 4.94 показана відкрита папка ВСТРОЕННЫЕ ФУНКЦИИ, з яких вибрані ФИНАНСОВЫЕ функції, а у третій секції уточнюється функція DDB, як обрана з списку доступних функцій.

Папка КОНСТАНТЫ містить константи, що використовуються в логічних виразах, наприклад TRUE (Істина), FALSE (Хибність), чи відповідають порожньому значенню.

Папка ОПЕРАТОРЫ зберігає:

- імена виразів, що створені користувачем;

- АРИФМЕТИЧЕСКИЕ оператори, які подані у вигляді кнопок, розташованих у лівій частині вікна, а саме оператор піднесення до степеня (^); оператор MOD для обчислення залишку від ділення двох цілих чисел; оператор ділення цілих чисел (\) та ін.

Папка ОБЩИЕ ВЫРАЖЕНИЯ дозволяє включати різні елементи загального призначення, які використовуються при створенні звітів.

Рисунок 4.94 – Вибір вбудованої фінансової функції DDB

Опція ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ допомагає будувати вирази та перевіряти їх синтаксис. Наприклад, коли у відповідь на відсутність оператора у виразі між операндами [МинимальныйЗапас] і [Ожидается] таблиці ТОВАРЫ, з’явиться ознака його некоректності - <<Выражениe>>, як показано на рисунку 4.95.

Рисунок 4.95 – Перевірка синтаксису виразів, що створюються у вікні ПОСТРОИТЕЛЬ ВЫРАЖЕНИЙ

4 ВИКОРИСТАННЯ ОПЦІЇ ГРУППИРОВКА В ACCESS

Діалогове вікно СОЗДАНИЕ ЗАПРОСА можна використовувати як для одержання відповідей на поставлені питання, так і для проведення простих обчислень на основі отриманих у результаті даних.

Потрібно зробити видимим рядок ГРУППОВАЯ ОПЕРАЦИЯ, розташований у нижній частині вікна. Для цього вибирають з меню команду ВИДÞГРУППОВЫЕ ОПЕРАЦИИ або натискають на кнопці ГРУППОВЫЕ ОПЕРАЦИИ, що знаходиться на панелі інструментів. На рисунку 4.96 показане вікно ЗАПРОС НА ВЫБОРКУ з рядком ГРУППОВАЯ ОПЕРАЦИЯ.

Рисунок 4.96 – Приклад появи рядка ГРУППОВАЯ ОПЕРАЦИЯ

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

Рисунок 4.97 – Приклад об’єднання записів у групи за значеннями
одного поля

Якщо в рядку ГРУППИРОВКА знаходиться кілька полів, результати запиту будуть містити рядки з кожним унікальним поєднанням цих полів (рис. 4.98).

На рисунку 4.99 подані результати виконання запиту, в якому всі дані з однаковим значенням полів ПОЛУЧАТЕЛЬ і ДАТА НАЗНАЧЕНИЯ подані в списку тільки один раз.

Рисунок 4.98 – Створення запиту, що використовує опцію ГРУППИРОВКА

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

Функція Count (підрахунок)

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

Для використання функції Count у запиті потрібно, як мінімум, два поля: одне – для створення групи, друге – для підрахунку записів у цій групі.

Рисунок 4.99 – Результат виконання запиту, що використовує опцію ГРУППИРОВКА

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

Обчислення за допомогою перехресної таблиці

Розглянемо приклад виконання перехресного запиту, що показаний на рисунку 4.100. Інформація бази даних організована за назвою країни, в яких знаходяться клієнти фірми, і за назвами одержувачів. Кожен рядок відповідає певній країні, а стовпець – одержувачу. Число в кожній комірці таблиці відповідає кількості замовлень кожного одержувача з певної країни.

Рисунок 4.100 –Вікно перехресного запиту в режимі ТАБЛИЦЯ

При створенні перехресного запиту враховують таблиці, що опрацьовуються з використанням опцій ГРУППОВАЯ ОПЕРАЦИЯ і ПЕРЕКРЕСТНАЯ ТАБЛИЦА (рис. 4.101).

Перехресні запити мають три поля:

- заголовки рядків, що визначають категорії по рядках;

- заголовки стовпців, що визначають категорії по стовпцях;

- значення, що визначається в результуючій таблиці запиту.

Рисунок 4.101 – Приклад формування перехресного запиту

У прикладі, наведеному на рис. 4.101, поля [Страна] і [НазваниеПолучател] використовують елемент ГРУППИРОВКА в рядку ГРУППОВАЯ ОПЕРАЦИЯ. Поле, що визначає значення, у цьому рядку містить функцію Count, що і використовується для обчислення значення.

Можна також використовувати одну чи кілька умов для обмеження кількості записів, що будуть включені в результуючу таблицю. Як і при створенні інших запитів, це можна зробити, застосувавши умову вибору до одного з полів, яке використовується. При цьому найкраще додати ще одне поле в запит і використати елемент УСЛОВИЕ (так, щоб поле не з'явилося в результатах), а потім додати критерій вибору для цього поля.

МАСТЕР перехресних запитів може автоматизувати весь процес створення такого запиту. Для того, щоб викликати МАСТЕР, відкривають вікно бази даних, переходять на вкладку ЗАПРОСЫ і обирають послідовність команд СОЗДАТЬÞНОВЫЙ ЗАПРОСÞПЕРЕКРЕСТНЫЙ ЗАПРОС.

Обчислення за допомогою функції 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, що містяться в списку рядка ГРУППИРОВКА

Функція Призначення
   
ГРУППИРОВКА Використовується для упорядкування результатів виконання запиту
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".

6 УЗАГАЛЬНЮВАЛЬНІ ФУНКЦІЇ ТА ЇХ СИНТАКСИС

Узагальнювальні функції використовуються для одержання загальних значень. Їх можна застосовувати до наборів (set) рядків:

- до всіх рядків таблиці;

- до рядків, визначених у реченні WHERE;

- до груп рядків у реченні GROUP BY.

У будь-якому випадку, незалежно від структури набору рядків, для кожного з них виходить єдине значення.

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

- порожнім;

- складатися з імен стовпців і виразів (які обробляють значення рядків);

- включати тільки узагальнювальні функції (що застосовуються до наборів значень).

Єдиним винятком є речення GROUP BY.

Узагальнювальні функції (таблиця 4.6) завжди мають аргументи (argument). Аргументи є виразами і беруться в дужки.

Загальний синтаксис узагальнювальної функції має такий вигляд:

AGGREGATE_FUNCTION ([DISTINCT] вираз)

Таблиця 4.6 – Список узагальнювальних функцій

Узагальнювальна функція Результат
SUM ([DISTINCT]) вираз) Сума (різних) значень
AVG ([DISTINCT] вираз) Середня величина (різних) значень
COUNT([DISTINCT] вираз) Кількість (різних) ненульових значень
COUNT(*) Кількість обраних рядків
МАХ (вираз) Максимальне значення
МІN (вираз) Мінімальне значення

З всіма узагальнювальними функціями, крім COUNT(*), можна використовувати ключове слово DISTINCT.

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

Функція COUNT(*) знаходить загальну кількість рядків, незалежно від наявності в них невизначених значень.

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

При використанні стовпця без невизначених значень результати роботи функцій COUNT і СОUNT(*) будуть однакові.

Функції SUM і AVG можна застосовувати тільки до числових стовпців.

Функції MIN, MAX, COUNT і COUNT(*) працюють із усіма типами даних.

З функціями SUM, AVG, COUNT, MIN, MAX можна використовувати ключове слово DISTINCT (воно знаходиться перед аргументом). При цьому DISTINCT не впливає на результати виконання функцій MAX і MIN.

При використанні ключового слова DISTINCT при обчисленні суми, середнього значення чи загальної кількості значень не враховуються повторювані рядки. У деяких системах при використанні ключового слова DISTINCT аргумент не може бути арифметичним виразом, а повинен бути іменем стовпця. DISTINCT також не застосовується разом з функцією COUNT(*), тому що вона завжди повертає єдиний рядок. Як правило, ключове слово DISTINCT у списку вибору можна використовувати тільки один раз. При відсутності узагальнювальних функцій, DISTINCT застосовується до всього списку вибору, а не до окремих стовпців. Однак це обмеження може призвести до виникнення проблем при використанні узагальнювальних функцій.

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

Узагальнювальні функції можна використовувати в списку вибору, або в реченні HAVING оператора SELECT.

Якщо в стовпці, до якого застосовується узагальнювальна функція, є невизначені (NULL) значення, вони просто ігноруються.

Винятком є функція COUNT(*), що завжди підраховує загальну кількість рядків, незалежно від наявності в них невизначених значень.

Якщо умови запиту не задовольняють жодний рядок, функція COUNT повертає значення нуль. Всі інші функції в цьому випадку повертають значення NULL.


5 КУРСОВЕ ПРОЕКТУВАННЯ

Метою курсового проектування є глибоке вивчення основних розділів курсу, детальне ознайомлення з основними етапами формування бази даних й поглиблене оволодіння методикою їх проектування.

5.1 ЗМIСТ ТА ОФОРМЛЕННЯ КУРСОВОЇ РОБОТИ

Курсове проектування включає групу послiдовних етапiв, які пов'язані з аналiзом предметної області, проектуванням нормалiзованих вiдношень, розробкою вихiдних форм та структури файлiв, розробкою алгоритмiв маніпулювання даними та програмного забезпечення, що їх реалізує.

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

Титульний аркуш пояснювальної записки оформляється за зразком, що наведений в додатку А (для прикладу обрано тему курсової роботи “Бібліотека ВНТУ”).

Тематика курсової роботи визначається викладачем (типові тематики подані у додатку Б). Позитивно оцiнюється самостiйний вибiр студентом (по узгодженню з викладачем) теми курсової роботи. Самостiйний вибiр предметної областi, у якiй доцiльно використовувати автоматизовану організацію та управління даними, дозволяє скласти враження про рiвень творчої активностi студента, його вмiння здiйснити попереднiй аналiз предметної областi.

Змiст курсової роботи повнiстю визначається завданням, яке видається кожному студенту, є обов’язковою складовою пояснювальної записки та оформляється відповідно до додатка В.

Пояснювальна записка до курсової роботи виконується відповідно до вимог державних стандартів та повинна включати такі складові:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: