Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи роботи з SQL - посібник - нова редакція.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

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 виводить записи в тому порядку, у якому вони розташовуються в таблиці.

СПРОБУЙТЕ – Упорядкування записів

Відсортуємо таблицю Сотрудники спочатку по прізвищах співробітників.

  1. Потрібно витягти з таблиці Сотрудники стовпці КодСотрудника, Фамилия й Имя. Для цього годиться наступний запит:

SELECT КодСотрудника, Фамилия, Имя

FROM Сотрудники

  1. Однак результат у цьому випадку буде несортованим:

КодСотрудника Фамилия Имя

------------- -------------------- ----------

1 Белова Мария

2 Новиков Павел

3 Бабкина Ольга

4 Воронова Дарья

5 Кротов Андрей

6 Акбаев Иван

7 Кралев Петр

8 Крылова Анна

9 Ясенева Инна

(9 row(s) affected)

  • Чесно кажучи, стовпець КодСотрудника нам не потрібний, однак завжди потрібно виводити стовпець, що містить унікальні ідентифікатори записів, оскільки це забезпечує додаткові можливості маніпуляції результатом. Наприклад, по ідентифікатору легше визначити, коли та або інша людина була прийнята на роботу, чим по імені й прізвищу, які іноді можуть збігатися. Цей унікальний ідентифікатор іменується первинним ключем, і далі ми ще будемо обговорювати важливість наявності його в результаті. Поки ж тільки зауважимо, що наявність первинного ключа в результаті – ознака добре складеного SQL-onepaтopa.

  1. Тепер додамо в оператор умова сортування ORDER BY:

SELECT КодСотрудника, Фамилия, Имя

FROM Сотрудники

ORDER BY Фамилия

  1. Маємо результат, відсортований належним чином:

КодСотрудника Фамилия Имя

------------- -------------------- ----------

6 Акбаев Иван

3 Бабкина Ольга

1 Белова Мария

4 Воронова Дарья

7 Кралев Петр

5 Кротов Андрей

8 Крылова Анна

2 Новиков Павел

9 Ясенева Инна

(9 row(s) affected)

Як це працює

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