- •9. Організація баз даних
- •1. Файлові системи. Особливості та недоліки використання традиційних файлових систем.
- •2. Системи керування баз даних. Основні компоненти і функції сучасних скдб.
- •3. Концептуальна модель даних. Сутність, атрибут, в’язок. Діаграма «сутність-зв’язок».
- •4. Реляційна модель даних та її аспекти. Поняття відношення.
- •5. Основні поняття реляційної моделі даних. Тип даних, домен, кортеж, атрибут, кардинальність, степінь відношення. Схема відношення та бази даних.
- •6. Властивості відношень.
- •7. Цілісність бази даних. Первинний та зовнішній ключ.
- •9. Створення запиту. Поняття вибірки. Оператор select та приклади його використання.
- •10. Реляційна алгебра і реляційне числення. Основні операції реляційної алгебри.
- •11. Агрегатні функції.
- •12. Операції з’єднання відношень.
- •13. Створення базових відношень за допомогою оператора create table.
- •14. Обмеження відношень.
- •15. Групування даних таблиці за допомогою директив order by і group by.
15. Групування даних таблиці за допомогою директив order by і group by.
Таблиці — це невпорядковані набори рядків і дані, які входять до них, не обов’язково з’являються в деякій визначеній послідованості. SQL використовує команду ORDER BY щоб дозволити користувачеві впорядкувати ваше виведення. Ця команда впорядковує виведення запиту згідно зі значеннями в тій чи іншій кількості обраних стовпців. Для кожного стовпця можна всановити як зростання (ASC) так і спадання (DESC). За замовчуванням встановлюється зростання. Для впорядкування даних таблиці за спаданням номеру груп запишемо таку команду:
SELECT * FROM Students ORDER BY sgrup DESC;
Якщо в директиві ORDER BY після імені першого стовпчика вказати другий, тоді після впорядкування за першим стовпчику будуть впорядковані за другим.
Якщо стовпчики перераховані в директиві SELECT, в директиві ORDER BY їх можна визначити, вказавши порядкові номери їх слідування після слова SELECT, тобто замість назви стовпчика ставляться порядкові номери:
SELECT sname, sgrup
FROM Students
ORDER BY 1,2
Директива GROUP BY
Дозволяє розділити таблицю на групи рядків, таким чином, щоб в рядках кожної групи містилися однакові значення у певному стовпчику (наприклад інформація про студентів кожної групи). Подібне групування дозволяє застосовувати одні й ті самі функції до груп рядків.
SELECT snum, sname, sgrup
FROM Students
GROUP BY snum;
Директива GROUP BY дозволяє сортувати значення стовпців у порядку зростання (це стандартний спосіб сортування), а потім перерахувати лише унікальні значення стовпців. На відміну від ORDER BY, директива GROUP BY видає як результат список унікальних значень стовпців. Проте спільні їх властивості в тому, що обидві директиви за замовчуванням сортують значення стовпців в порядку зростання.
В наступному прикладі виконується сортування рядків за стовпчиком sgrup. Спочатку значення з цього стовпчика сортуються в порядку зростання, а потім підраховується кількість представників кожної окремої групи і в якості другого результату виводяться у запиті:
SELECT sgrup, “HeadCount”=count (*)
FROM Students
GROUP BY sgrup
Крім того можна вибрати певні групи за допомогою директиви HAVING, яка дозволяє порівнювати деяку властивість групи з константою. Якщо група задовольняє умові (яка є логічним виразом) з директиви HAVING, тоді вона включається до результату запиту.
SELECT sgrup, “HeadCount”=count (*)
FROM Students
GROUP BY sgrup
HAVING count(*)=5;
Одержаний результат буде впорядкований відносно номеру групи і стосуватиметься лише тих груп, кількість представників яких у загальному списку рівна 5-ти.