Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



SELECT NUM, GEOM FROM USP

WHERE GEOM BETWEEN 3 AND 5;

 

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

Оператор LIKE застосовується тільки до полів типу CHAR або VARCHAR, в яких він шукає підрядки, тобто він шукає символи і перевіряє, чи співпадають вони з умовою. Як умову оператор використовує групові символи – спеціальні символи, які відповідають чому-небудь. Існує два типи групових символів, які використовуються з LIKE:

· символ підкреслення замішає будь-який одиночний символ, наприклад. ‘К_Т’ відповідатиме словам ‘КІТ’ або ‘КАТ’, але не відповідатиме ‘КЕТА’;

· знак відсотка заміщає послідовність будь-якого числа символів, зокрема нульової довжини. Наприклад. ‘%К%Т’ відповідатиме словам ‘КІТ’ або ‘СКІТ’, але не відповідає ‘КАТЕР’.

Наприклад, для знаходження інформації про студентів, чиї прізвища починаються з букви «М», треба ввести такий запит:

 

SELECT * FROM STUDENTS

WHERE FAM LIKE ‘K%’;

 

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

Іноді в таблиці виникають записи, які не мають ніяких значень для кожного поля, наприклад тому що інформація не завершена або тому що це поле просто не заповнювалося. SQL враховує такий варіант, дозволяючи вводити порожнє значення NULL в поле замість значення. Коли значення поля рівне NULL, це означає, що СУБД спеціально помітила це поле, як що не має ніякого значення для цього запису. Це принципово відрізняється від простого значення в поле, значення нуля або пропуску, які БД оброблятиме так само, як і будь-яке інше значення. Оскільки NULL не є наочним значенням, він не має і типу даних і може поміщатися в будь-який тип поля.

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

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

 

SELECT * FROM USP WHERE INF IS NULL;

 

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

Спільно з розглянутими операторами, можуть бути використані і традиційні функції логічного відношення AND, OR і NOT.

Аналогічним чином можна використовувати NOT BETWEEN і NOT LIKE, тобто можна використовувати весь набір стандартних математичних і спеціальних операторів.

 

3. Отримання підсумкових даних

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

· COUNT – виконує підрахунок кількості рядків або не-NULL значень полів, які вибрав запит;

· SUM – розраховує арифметичну суму всіх вибраних значень даного поля;

· AVG – здійснює усереднювання всіх вибраних значень даного поля;

· МАХ – знаходить і повертає найбільше зі всіх вибраних значень даного поля;

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

Агрегатні функції використовуються подібно до імен полів в реченні SELECT запиту, але з урахуванням того, що вони беруть імена поля як аргументи. Варто мати на увазі, що з SUM і AVG використовуються тільки числові поля, а з COUNT, МАХ, і MIN можуть використовуватися числові або символьні поля. Коли функції записуються з символьними полями, МАХ і MIN використовують їх в еквівалент ASCII, відповідно до якого вибирається максимальне або мінімальне значення.

Наприклад, щоб знайти суму всієї виплаченої стипендії в таблиці з даними про студентів, можна використовувати наступний запит:

 

SELECT SUM (STIP) FROM STUDENTS;

 

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

 

SELECT COUNT (*) FROM STUDENTS;

Для того, щоб підрахувати середній бал успішності студентів з алгебри можна скористатися такою конструкцію мови SQL:

 

SELECT AVG(ALG) FROM USP;

 

 

У SQL допускається використовувати агрегатні функції з аргументами, які складаються з виразів. Припустимо, що необхідно знайти максимальну величину проіндексованої (у прикладі, збільшеною удвічі) стипендії. Для кожного рядка таблиці такий запит повинен умножати STIP на 2 і вибирати найбільше значення, яке буде знайдено. Для цього можна скористатися наступним запитом:

 

SELECT MAX (STIP*2) FROM STUDENTS;

 

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

 

4. Сортування результатів запиту

Більшість БД, що працюють з SQL, надають спеціальні засоби, що дозволяють удосконалювати виведення запитів.

Для впорядкування виведення полів таблиць SQL використовує команду ORDER BY, яка дозволяє сортувати виведення запиту згідно значенням в тій або іншій кількості вибраних стовпців. Якщо указується декілька полів, то стовпці виводу упорядковуються один усередині іншого, при цьому можна визначати зростання (ASC) або спадання (DESC) для кожного стовпця. Слід пам’ятати, що за замовчанням встановлено зростання.

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

SELECT * FROM STUDENTS ORDER BY FAM ASC;

Розглянемо приклад для впорядковування інформації по декількох стовпцях. Наприклад, інформацію з таблиці з даними про студентів упорядкуємо по зменшенню розміру стипендії, а для студентів, що мають однаковий її розмір, – в алфавітному порядку їх прізвищ. Для цього скористаємося запитом:

 

SELECT * FROM STUDENTS ORDER BY STIP DESC, FAM ASC;

 

Аналогічним чином допускається використовувати ORDER BY відразу з будь-яким числом стовпців, проте поля, по яких відбувається впорядковування, повинні бути вказані в SELECT.

Замість імен стовпців, можна указувати їх порядкові номери для вказівки поля, використовуваного у впорядкуванні виводу. Ці номери можуть посилатися не на порядок стовпців в таблиці, а на їх порядок у виводі. Таким чином, поле, згадане в пропозиції SELECT першим, хоча ORDER BY має номер 1 незалежно від того, яким по порядку воно стоїть в таблиці. Наприклад, запит, що виводить інформацію про студентів в алфавітному порядку прізвищ, можна записати так:

 

SELECT NUM, FAM, NAME FROM STUDENTS ORDER BY 2 ASC;

 

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

 


Лекція 8. Створення і обслуговування простих баз даних засобами SQL

 


Читайте також:

  1. SELECT NUM, FAM, NAME, STAT, DATA, TEL. STIP
  2. SELECT NUM, FAM, STIP
  3. Selection Of Address For Control Memory




Переглядів: 705

<== попередня сторінка | наступна сторінка ==>
SELECT NUM, FAM, STIP | Використання SQL для роботи з додатками Microsoft Access

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.