Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
METODIChKA_-_OBDZ_II_semestr.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
905.22 Кб
Скачать

Цикл while … do

Цей цикл є аналогічним тому, що використовується в Delphi:

WHILE (<умова_цикла>) DO

<оператор>

Умова циклу має бути поміщене в колові дужки. Оператор може бути складеним, поміщеним між BEGIN і END. Крім того, в тілі оператора може зустрічатися команда EXIT, яка служить для примусового завершення роботи процедури. У тригері оператор EXIT не застосовується.

Контрольні питання:

  1. Що таке «зберігаєма процедура» та для чого вона призначена?

  2. Яких типів можуть бути зберігаємі процедури?

  3. Яку мову містять в своїй основі зберігаємі процедури?

  4. За допомогою якого оператора створюються зберігаємі процедури?

  5. Що розуміється під поняттям «термінатори»?

  6. Які елементи з синтаксису оператора CREATE PROCEDURE є обов’язковими, а які – необов’язковими?

  7. Яке призначення мають слова DECLARE та VARIABLE при роботі зі зберігаємими процедурами?

  8. В якому випадку перед іменами локальних змінних слід ставити двокрапку?

  9. Для чого призначений оператор SUSPEND?

Тема 37 «Стандартні функції InterBase» План

    1. Функції InterBase.

    2. Приклади з використання функцій InterBase.

Література

  1. А. Я. Скляр - «Введение в InterBase». 2002 р.

  2. А. Н. Ковязин, С. М. Востриков - «Мир InterBase. Архитектура, администрирование и разработка приложений баз данных в InterBase/Firebird/Yaffil (2-е издание)». 2003р.

  3. Пасічник В. В., Резніченко В. А. «Організація баз даних та знань». Київ, 2006 р.

  4. http://www.intuit.ru

Interbase має в своєму арсеналі вельми незначний набір стандартних функцій, які можна використовувати в запитах. Це пов'язано з тим, що, по-перше, основною перегою InterBase є малий об'єм сервера, і низькі вимоги до апаратного забезпечення, що дозволяє використовувати InterBase практично на будь-якому комп'ютері. А по-друге, InterBase надає дуже привабливу можливість для програміста створювати власні функції (UDF) і підключати їх до сервера, до конкретної бази даних.

Стандартні функції InterBase представленів таблиці 1:

Таблиця 1 - Стандартні функції InterBase

Функція

Тип

Призначення

AVG ()

Агрегатна

Обчислює і повертає середнє значення з набору записів.

COUNT ()

Агрегатна

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

MAX ()

Агрегатна

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

MIN ()

Агрегатна

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

SUM ()

Агрегатна

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

CAST ()

Перетворення

Перетворює значення стовпця з одного типа даних в іншій.

UPPER ()

Перетворення

Перетворює всі символи рядка у верхній регістр.

GEN_ID ()

Числова

Повертає (і збільшує) значення генератора.

      1. AVG () - агрегатна функція, повертає середнє арифметичне значення з безлічі

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

Якщо число рядків, які повертаються в результаті виконання запита SELECT дорівнює 0, то AVG поверне NULL. Синтаксис:

AVG([ALL] <стовпець | вираз> | DISTINCT <стовпець | вираз>);

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

SELECT AVG(Stoimost) FROM Tovar

  1. COUNT () - функція підраховує і повертає кількість записів, що задовольняють

умові пошуку. Якщо умова не задана, функція повертає кількість всіх записів набору даних. Синтаксис:

COUNT ([DISTINCT] <ім’я_поля>);

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

/*Кількість всіх записів:*/

SELECT COUNT(Nazvanie) FROM Tovar;

/*Те ж саме, але виключаються значення, які повторюються:*/

SELECT COUNT(DISTINCT Stoimost) FROM Tovar;

/* Кількість всіх записів, які задовольняють умові:*/

SELECT COUNT(Nazvanie) FROM Tovar WHERE Stoimost = 10;

  1. 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;

  1. SUM () – функція повертає суму всіх значень із стовпця таблиці або з виразу.

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

Синтаксис:

SUMM([ALL] <стовпець|вираз> | DISTINCT <стовпець|вираз>);

Приклад:

/*Сума всіх значень з числового стовпця вартості товарів:*/

SELECT SUM(Stoimost) FROM Tovar;

  1. 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.

  1. UPPER () – перетворює всі символи рядка до верхнього регістра. Якщо набір

символів і порядок сортування підтримують таке перетворення, функція UPPER() поверне рядок з символами у верхньому регістрі. Інакше функція поверне рядок без змін. Функція коректно перетворює рядки з російськими буквами лише в тому випадку, якщо встановлений набір символів для рядка WIN1251, а порядок сортування PXW_CYRL.

Синтаксис:

UPPER(<значення>);

SELECT UPPER(Nazvanie), UPPER(Nazvanie COLLATE WIN1251)

FROM Tovar;

Рисунок 37.1 – Результат виконання запиту

  1. GEN_ID () – функція є механізмом, що збільшує значення вказаного

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

Синтаксис:

CEN_ID(<генератор>, <крок>);

Контрольні питання:

  1. Які функції підтримує сервер InterBase?

  2. Для чого призначена функція COUNT()?

  3. Чим відрізняються функції COUNT() та SUM()?

  1. Яка функція є механізмом, що збільшує значення вказаного генератора на вказаний крок?

  2. Для чого призначена функція UPPER()?

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