- •Технікум промислової автоматики
- •«Затверджую»
- •5.05010101 «Обслуговування програмних систем і комплексів»
- •Пояснювальна записка
- •Функції самостійної роботи:
- •Види самостійної роботи:
- •Теми, які виносяться на самостійне вивчення:
- •Тема 26 «Методи доступу до файлів» План
- •Література
- •Непідпорядковані файли
- •Підпорядковані файли
- •Тема 27 «Види синхронізаційних захоплень» План
- •Література
- •Гранульовані синхронізаційні захоплення
- •Предикатні синхронізаційні захоплення
- •Тупіки, розпізнавання та руйнування
- •Тема 28 «Кластеризація» План
- •Література
- •Тема 29 «Режими роботи з базою даних» План
- •Література
- •Тема 30 «Захист бази даних. Засоби захисту даних» План
- •Література
- •Ідентифікація та підтвердження автентичності всіх користувачів або
- •Реєстрація користувачів
- •Керування правами доступу
- •1. Кому надаються права доступу
- •2. Умови надання прав доступу
- •3. Об'єкти, на які поширюються права доступу
- •Операції, щодо яких специфікуються права доступу
- •Можливість передачі прав доступу іншим особам
- •Обов'язкові методи захисту
- •Ведення журналів доступу
- •Обхід системи захисту
- •Тема 31 «Відкриті системи. Сервери бд» План
- •Література
- •Сервери баз даних
- •Тема 32 «Моделі зображення знань. Фреймова, гібрідна модель та розширена реляційна модель даних» План
- •Література
- •Фреймова модель
- •Гібридні моделі
- •Розширена реляційна модель даних
- •Тема 33 «Розширення семантики даних» План
- •Література
- •Тема 34 «Механізми виведення даних» План
- •Література
- •Тема 35 «Типи даних в InterBase» План
- •Література
- •Числа з фіксованою точкою
- •Тема 36 «Зберігаємі процедури в InterBase» План
- •Література
- •Оператор привласнення
- •Умовний оператор if… then … else
- •Оператор select Зберігаєма процедура може містити оператор select для виведення одного або декількох значень і привласнення цих значень локальним змінним або вихідним параметрам. Приклад:
- •Цикл for select та suspend Часто буває недостатньо здобуття даних лише одного запису. Щоб отримати безліч значень (віртуальну таблицю), використовується оператор for, що має наступний синтаксис:
- •Цикл while … do
- •Тема 37 «Стандартні функції InterBase» План
- •Література
- •Тема 38 «Практика застосувань транзакцій в InterBase» План
- •Література
Цикл while … do
Цей цикл є аналогічним тому, що використовується в Delphi:
WHILE (<умова_цикла>) DO
<оператор>
Умова циклу має бути поміщене в колові дужки. Оператор може бути складеним, поміщеним між BEGIN і END. Крім того, в тілі оператора може зустрічатися команда EXIT, яка служить для примусового завершення роботи процедури. У тригері оператор EXIT не застосовується.
Контрольні питання:
Що таке «зберігаєма процедура» та для чого вона призначена?
Яких типів можуть бути зберігаємі процедури?
Яку мову містять в своїй основі зберігаємі процедури?
За допомогою якого оператора створюються зберігаємі процедури?
Що розуміється під поняттям «термінатори»?
Які елементи з синтаксису оператора CREATE PROCEDURE є обов’язковими, а які – необов’язковими?
Яке призначення мають слова DECLARE та VARIABLE при роботі зі зберігаємими процедурами?
В якому випадку перед іменами локальних змінних слід ставити двокрапку?
Для чого призначений оператор SUSPEND?
Тема 37 «Стандартні функції InterBase» План
Функції InterBase.
Приклади з використання функцій InterBase.
Література
А. Я. Скляр - «Введение в InterBase». 2002 р.
А. Н. Ковязин, С. М. Востриков - «Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/Firebird/Yaffil (2-е издание)». 2003р.
Пасічник В. В., Резніченко В. А. «Організація баз даних та знань». Київ, 2006 р.
http://www.intuit.ru
Interbase має в своєму арсеналі вельми незначний набір стандартних функцій, які можна використовувати в запитах. Це пов'язано з тим, що, по-перше, основною перегою InterBase є малий об'єм сервера, і низькі вимоги до апаратного забезпечення, що дозволяє використовувати InterBase практично на будь-якому комп'ютері. А по-друге, InterBase надає дуже привабливу можливість для програміста створювати власні функції (UDF) і підключати їх до сервера, до конкретної бази даних.
Стандартні функції InterBase представленів таблиці 1:
Таблиця 1 - Стандартні функції InterBase
Функція |
Тип |
Призначення |
AVG () |
Агрегатна |
Обчислює і повертає середнє значення з набору записів. |
COUNT () |
Агрегатна |
Підраховує і повертає кількість записів, що задовольняють умові пошуку запиту. |
MAX () |
Агрегатна |
Знаходить і повертає максимальне значення з набору записів. |
MIN () |
Агрегатна |
Знаходить і повертає мінімальне значення з набору записів. |
SUM () |
Агрегатна |
Підсумовує значення всіх записів і повертає результат. |
CAST () |
Перетворення |
Перетворює значення стовпця з одного типа даних в іншій. |
UPPER () |
Перетворення |
Перетворює всі символи рядка у верхній регістр. |
GEN_ID () |
Числова |
Повертає (і збільшує) значення генератора. |
AVG () - агрегатна функція, повертає середнє арифметичне значення з безлічі
значень у вказаному числовому стовпці або виразі. Якщо значення якого-небудь стовпця дорівнює NULL, воно автоматично виключається з обчислення, що запобігає спотворенню результату, який повертається.
Якщо число рядків, які повертаються в результаті виконання запита SELECT дорівнює 0, то AVG поверне NULL. Синтаксис:
AVG([ALL] <стовпець | вираз> | DISTINCT <стовпець | вираз>);
Якщо вказаний необов'язковий параметр ALL (за умовчанням), то середнє арифметичне значення обчислюється зі всіх стовпців або виразу. Якщо ж вказаний параметр DISTINCT, то при обчисленні будуть виключені значення, що повторюються. Приклад:
SELECT AVG(Stoimost) FROM Tovar
COUNT () - функція підраховує і повертає кількість записів, що задовольняють
умові пошуку. Якщо умова не задана, функція повертає кількість всіх записів набору даних. Синтаксис:
COUNT ([DISTINCT] <ім’я_поля>);
Якщо вказаний необов'язковий параметр DISTINCT, з обчислення будуть виключені значення, що повторюються.
/*Кількість всіх записів:*/
SELECT COUNT(Nazvanie) FROM Tovar;
/*Те ж саме, але виключаються значення, які повторюються:*/
SELECT COUNT(DISTINCT Stoimost) FROM Tovar;
/* Кількість всіх записів, які задовольняють умові:*/
SELECT COUNT(Nazvanie) FROM Tovar WHERE Stoimost = 10;
MAX () / MIN () – агрегатні функції, які підраховують і повертають
максимальне або мінімальне число з безлічі значень у вказаному стовпці або виразі. Якщо якесь значення з безлічі дорівнює NULL, воно виключається з обчислень. Якщо число записів в запиті дорівнює нулю, функції повертають NULL.
Якщо MAX () / MIN () застосовуються для рядкових стовпців CHAR / VARCHAR, то максимум або мінімум визначається залежно від символьного набору (CHARACTER SET) і порядку сортування (COLLATION). Іншими словами, функції повертають максимальний або мінімальний текст зі всіх рядків, враховуючи, що «А» менше, ніж «Я».
Синтаксис:
MAX([ALL] <стовпець|вираз> | DISTINCT <стовпець|вираз>);
MIN([ALL] <стовпець|вираз> | DISTINCT <стовпець|вираз>);
Приклади:
/*Максимальне та мінімальне значення з числового стовпця вартості товарів:*/
SELECT MAX(Stoimost), MIN(Stoimost) FROM Tovar;
/* Максимальне та мінімальне значення з символьного стовпця з назвою товарів:*/
SELECT MAX(Nazvanie), MIN(Nazvanie) FROM Tovar;
SUM () – функція повертає суму всіх значень із стовпця таблиці або з виразу.
Як і в попередніх прикладах, значення NULL автоматично виключаються з розрахунків, а якщо кількість рядків у вказаному наборі даних дорівнюватиме нулю, функція поверне NULL.
Синтаксис:
SUMM([ALL] <стовпець|вираз> | DISTINCT <стовпець|вираз>);
Приклад:
/*Сума всіх значень з числового стовпця вартості товарів:*/
SELECT SUM(Stoimost) FROM Tovar;
CAST () – функція дозволяє перетворювати один тип даних в іншій, або
трактувати його, як інший тип даних. Функцію зручно використовувати в запитах, які змішують дані різних типів в одному полі. Також CAST може використовуватися в умовах пошуку. Слід пам'ятати, що типи даних повинні відповідати перетворенню. Тобто, будь-яке число можна перетворити на рядок, проте не будь-який рядок можна перетворити на число. Якщо рядок містить значення «123», він коректно перетвориться, і функція поверне правильний результат. Якщо рядок містить значення «АБВ», то його неможливо буде перетворити в числовий тип, і функція поверне помилку.
Типи даних, які перетворюються функцією CAST (), представлені в таблиці 2.
Таблиця 2 - Типи даних, які перетворюються функцією CAST ()
Ісходний тип даних |
Можливий для перетворення тип даних |
NUMERIC |
CHAR, VARCHAR, DATE |
CHAR, VARCHAR |
NUMERIC, DATE |
DATE |
CHAR, VARCHAR, DATE |
Під типом даних NUMERIC маються на увазі цілі і дійсні числові типи.
Синтаксис:
CAST(<поле | значення> AS <тип_даних>)
Приклад:
/*Виведення в одному полі об’єднаних значень рядкового стовпця Nazvanie */
/*та числового поля Stoimost, яке перетворене в рядок:*/
SELECT Nazvanie || ' - ' || CAST(Stoimost AS VARCHAR(25))
FROM Tovar;
В прикладі використаний символ конкатенації (об’єднання) рядків "||", друга частина рядка перетворюється функцією CAST з типу DOUBLE PRECISION.
UPPER () – перетворює всі символи рядка до верхнього регістра. Якщо набір
символів і порядок сортування підтримують таке перетворення, функція UPPER() поверне рядок з символами у верхньому регістрі. Інакше функція поверне рядок без змін. Функція коректно перетворює рядки з російськими буквами лише в тому випадку, якщо встановлений набір символів для рядка WIN1251, а порядок сортування PXW_CYRL.
Синтаксис:
UPPER(<значення>);
SELECT UPPER(Nazvanie), UPPER(Nazvanie COLLATE WIN1251)
FROM Tovar;
Рисунок 37.1 – Результат виконання запиту
GEN_ID () – функція є механізмом, що збільшує значення вказаного
генератора на вказаний крок, і що повертає поточне значення цього генератора. Якщо крок дорівнює 0, збільшення значення не відбувається.
Синтаксис:
CEN_ID(<генератор>, <крок>);
Контрольні питання:
Які функції підтримує сервер InterBase?
Для чого призначена функція COUNT()?
Чим відрізняються функції COUNT() та SUM()?
Яка функція є механізмом, що збільшує значення вказаного генератора на вказаний крок?
Для чого призначена функція UPPER()?
