- •4 База даних Борей 56
- •1 Введення в sql
- •1 Що таке sql і що вона уміє
- •2 Чого sql не вміє
- •3 Коротка історія sql
- •3.1 Рання історія
- •3.2 Стандарти
- •3.3 Сучасний стан справ
- •5 Термінологія
- •4 Версії sql
- •6 Процедурні й декларативні мови
- •6.1 Мови й поїздка в таксі
- •6.2 Порівняння процедурних і декларативних мов
- •7 Місце sql у центрі даних
- •7.1 Де взяти sql?
- •8 Зовнішній інтерфейс на прикладі Access
- •9 Прикладні частини
- •9.2 Скбд для настільних систем
- •10 Установка з’єднання
- •11 Типова конфігурація використання sql
- •12 Роль людини в скбд
- •13 Коли застосовувати sql
- •13.1 Нарощення
- •13.2 Швидкість
- •13.4 Універсальність
- •13.5 Аналітичні можливості
- •14 У яких випадках скбд із підтримкою sql не потрібна
- •Висновки
- •2 Підготовка до роботи з sql
- •1 База даних Борей
- •2 Прикладні частини
- •2.3 Установка Microsoft sql Server
- •2.4 Імпортування Борей в sql Server
- •2.5 Запити й вивчення sql в Access
- •3 Аналізатор запитів
- •Висновки
- •3 Введення в реляційні бази даних
- •1 Складові додатки, призначені для роботи з даними
- •2 Що таке база даних
- •2.1 Демонстраційний проект – тюльпанний бізнес
- •2.2 Таблиці
- •2.3 Записи
- •2.4 Стовпці (поля)
- •2.5 Демонстраційний проект та його проблеми
- •2.6 Реляційні бази даних
- •2.7 Чи позбулися ми проблем?
- •3 Зіставлення записів – роль ключів
- •3.1 Первинні ключі
- •3.2 Зовнішні ключі
- •3.3 Як діють ключі
- •4 Альтернативний спосіб опису відношень
- •4.1 Один-багато
- •4.2 Один-один
- •4.3 Нормалізація
- •4.4 Що таке null
- •4.5 Де ж у цій теорії місце sql-операторам?
- •5 Порівняння термінології sql й інших систем
- •5.1 Паперові документи
- •5.2 Електронні таблиці
- •5.3 Настільні системи скбд (на прикладі Access)
- •Висновки
- •4 База даних Борей
- •1 Відкриття бази даних Борей
- •2 Схема бази даних
- •2.1 Що таке схема
- •2.2 У чому важливість схеми
- •3 Схема бази даних Борей
- •3.1 Таблиці й відношення бази даних Борей
- •3.2 Вікно відношень в Access
- •3.3 Процес розміщення замовлення
- •3.4 Запити Access в Борей
- •Висновки
- •5 Синтаксис sql й оператор select
- •1 Загальний синтаксис sql
- •1.1 Пробіли
- •1.2 Лапки й спеціальні символи
- •2 Оператор select
- •2.1 Основний синтаксис
- •2.2 Визначення полів
- •3 Фільтрація даних
- •3 Бабкина Ольга
- •4 Воронова Дарья
- •9 Ясенева Инна
- •3.1 Значення null
- •3.2 Обчислення в умові where
- •3.3 Інтервали
- •3.4 Додавання логічних операцій в умову where
- •3.5 Операція like
- •4 Сортування записів
- •Висновки
- •Література
4 Сортування записів
На даний момент ми навчилися зчитувати записи з таблиць і фільтрувати їх при зчитуванні. У цьому розділі ми розглянемо ще одне ключове слово, яке застосовується для сортування записів, що повертаються запитом – ORDER BY. Як ми переконаємось, це дуже гнучкий засіб сортування.
В SQL-операторі умова ORDER BY вказується, як правило, у самому кінці. Синтаксис цієї умови особливий, тому що воно, подібно операторові SELECT, може діяти на декількох таблицях. Крім цього, сортування по полях може виконуватися як зверху вниз, так і знизу нагору:
ORDER BY [поле1] [ASC/DESC], [поле2] [ASC/DESC], ..., [полеn] [ASC/DESC]
Необов’язковий параметр ASC/DESC у кожного поля вказує напрямок сортування по відповідному стовпці: зверху-вниз, зі зниженням (ASC) або знизу-нагору, зі зростанням (DESC). Якщо цей параметр не зазначений, сортування виконується, за замовчуванням, зверху вниз. Упорядкування відбудеться так, як зазначено в умові ORDER BY, навіть якщо в списку оператора SELECT зазначений інший порядок. Значення NULL при сортуванні розглядаються як найменші. Запит без умови ORDER BY виводить записи в тому порядку, у якому вони розташовуються в таблиці.
СПРОБУЙТЕ – Упорядкування записів
Відсортуємо таблицю Сотрудники спочатку по прізвищах співробітників.
Потрібно витягти з таблиці Сотрудники стовпці КодСотрудника, Фамилия й Имя. Для цього годиться наступний запит:
SELECT КодСотрудника, Фамилия, Имя
FROM Сотрудники
Однак результат у цьому випадку буде несортованим:
КодСотрудника Фамилия Имя
------------- -------------------- ----------
1 Белова Мария
2 Новиков Павел
3 Бабкина Ольга
4 Воронова Дарья
5 Кротов Андрей
6 Акбаев Иван
7 Кралев Петр
8 Крылова Анна
9 Ясенева Инна
(9 row(s) affected)
Чесно кажучи, стовпець КодСотрудника нам не потрібний, однак завжди потрібно виводити стовпець, що містить унікальні ідентифікатори записів, оскільки це забезпечує додаткові можливості маніпуляції результатом. Наприклад, по ідентифікатору легше визначити, коли та або інша людина була прийнята на роботу, чим по імені й прізвищу, які іноді можуть збігатися. Цей унікальний ідентифікатор іменується первинним ключем, і далі ми ще будемо обговорювати важливість наявності його в результаті. Поки ж тільки зауважимо, що наявність первинного ключа в результаті – ознака добре складеного SQL-onepaтopa.
Тепер додамо в оператор умова сортування ORDER BY:
SELECT КодСотрудника, Фамилия, Имя
FROM Сотрудники
ORDER BY Фамилия
Маємо результат, відсортований належним чином:
КодСотрудника Фамилия Имя
------------- -------------------- ----------
6 Акбаев Иван
3 Бабкина Ольга
1 Белова Мария
4 Воронова Дарья
7 Кралев Петр
5 Кротов Андрей
8 Крылова Анна
2 Новиков Павел
9 Ясенева Инна
(9 row(s) affected)
Як це працює
Умова ORDER BY обробляється після складання результату, пере упорядковуючи його знизу нагору або зверху вниз. Результат може бути відсортований декількома способами, кожний з яких повинен бути зазначений в умові ORDER BY через кому.
