Якщо ви маєте намір групувати та (або) агрегувати відношення, деякі атрибути яких дорівнюють NULL, треба мати на увазі наступне.
- У процесі агрегування значення NULL не враховуються ні в сумі, ні в середньому (тобто суму ділимо на кількість непустих значень), ні в мінімумі або максимумі, ні в лічильнику. Напр., COUNT(*) – число кортежів, а COUNT(A) – число непустих значень A.
- Навпаки, при групуванні значення NULL у групуючому атрибуті трактується як звичайне значення, яке відрізняється від інших, не NULL. Наприклад, якщо хоча б один кортеж відношення R містить у компоненті атрибута a значення NULL, при виконанні запиту
SELECT a, AVG(b) FROM R GROUP BY a;
у підсумковому відношенні буде створений окремий кортеж зі значенням NULL для a та деяким значенням AVG(b).
Послідовність речень у SQL-запитах
FROM Має бути наступна послідовність:
SELECT | Обов’язкове речення |
FROM | Обов’язкове речення |
WHERE | |
GROUP BY | |
HAVING | Можна задати лише в разі наявності речення GROUP BY |
ORDER BY |
Мова SQL. Модифікація бази даних. Визначення схем відношень. Віртуальні таблиці. – 2 год.
До модифікації БД відносяться:
- Вставка (insertion) нових кортежів у відношення;
- видалення (deletion) певних кортежів з відношення;
- оновлення (updating) значень деяких компонентів у певних існуючих кортежах відношень.