Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КСК_БД-2 методвказівки-2015-NEW.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

Вибір рядків: речення where

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

Таблиця 3.2 – Оператори завдання умов

Оператор, ключове слово

Приклад використання

оператори порівняння (=, <, >, >=, <=, <>, ! =);

where ціна > 1000;

комбінації умовних і логічних операцій - (AND,OR,NOT)

where ціна < 5000 and ціна >2000

діапазони (BETWEEN і NOT BETWEEN)

where ціна between 450 and 500

списки (IN, NOT IN)

where товар in ("монітор", "принтер")

невідомі значення (IS NULL і IS NOT NULL)

where телефон is null

відповідності символів (LIKE і NOT LIKE)

where телефон not like "415%";

where назва like "*БД*"

Агрегатні функції

Агрегатні функції (табл. 3.3) використовуються для одержання узагальнюючих значень. Вони дають єдине значення для цілої групи рядків таблиці

Таблиці 3.3 - Агрегатні функції

Функція

Результат

COUNT

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

SUM

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

AVG

Обчислює середнє значення для всіх обраних значень даного поля

MAX

Обчислює найбільше з всіх обраних значень даного поля

MIN

Обчислює найменше з всіх обраних значень даного поля

Групування даних

Речення GROUP BY розділяє таблицю на набори, а агрегатна функція обчислює для кожного з них підсумкове значення. Ці значення називаються агрегатним вектором.

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

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

[WHERE умови]

[GROUP BY список_угруповання];

Наприклад:

select художник, count(картина)

from Музеї

group by художник;

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

Речення HAVING

Речення WHERE накладає обмеження на рядки, а HAVING - на групи. Як правило, речення HAVING використовується разом із реченням GROUP BY.

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

В умові речення WHERE не можуть знаходитися агрегатні функції. Крім того, елементи речення HAVING повинні включатися до списку вибору. На речення WHERE це обмеження не поширюється. У реченні HAVING може міститися будь-яка кількість умов.

select тип, count(*)

from Товари

group by тип

having count(*) > 1;

select автор

from Книги

group by автор

having автор like "П%";