Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція_Із_2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
260.61 Кб
Скачать

5.1.5 Фраза order by

Фраза ORDER BY є необов’язковою. Дана фраза сортує результуючі записи, що отримані після виконання запиту за зростанням або спаданням указаних полів чи поля. Його необхідно вказувати для сортування результату запиту. За замовчуванням задано порядок сортування за зростанням.

Синтаксис:

[ ORDER BY { <назва поля> [ ASC | DESC ] } [,…]]

<назва поля> – поле, за яким відбувається сортування. ASC (DESC) – зареєстровані слова для розташування елементів у зростаючому (спадному) порядку.

Приклад 11.

Вивести на екран всю інформацію про студентів, яка відсортована у спаданні за віком студентів, а потім у зростанні за їх прізвищами.

Запит матиме вигляд:

SELECT * FROM Students ORDER BY Age DESC, Surname ASC;

Результат – табл. 11

Таблиця 11

Num

Surname

Name

Age

Speciality

6

Петрів

Назар

20

4

Селань

Віктор

20

Математика

1

Крупик

Віктор

19

Інформатика

2

Прапій

Степан

19

Інформатика

3

Працків

Оксана

18

Інформатика

5

Ятрів

Олег

17

Інформатика

5.2 Операція join — об’єднання таблиць

Для задання об’єднання кількох таблиць у фразі FROM виконують операцію JOIN, яка реалізує операцію з’єднання реляційної алгебри.

Синтаксис:

FROM <таблиця1> [AS <,псевдонім>] [ INNER | LEFT | RIGHT | FULL ] JOIN <таблиця2> [AS <,псевдонім>] ON {<таблиця1>.<поле1>} <операція> {<таблиця2>.<поле2>}

Тут <таблиця1>, <таблиця2> – імена таблиць, записи яких підлягають об’єднанню; <поле1>, <поле2> – імена полів, що об’єднуються; якщо поля не є числовими, то повинні мати однаковий тип даних і містити дані одного виду; поля можуть мати різні імена, <операція> – будь-яка операція порівняння.

Якщо в результат вибірки необхідно включити всі рядки з обох таблиць, що задовольняють умові вибірки, використовується операція INNER JOIN. При цьому результуюча таблиця міститиме всі заголовки обох таблиць.

Нехай дано дві таблиці Т1 і Т2:

T1

F1

F2

A

100

B

101

C

102

D

103

T2

F3

F4

B

200

C

201

F

202

G

203

Задамо запит:

SELECT *

FROM

T1 INNER JOIN T2;

Результатом такого запиту буде таблиця :

F1

F2

F3

F4

A

100

B

200

B

101

C

201

C

102

F

202

D

103

G

203

Задамо запит:

SELECT * FROM T1 join T2 on T1.F1=T2.F3;

Результатом такого запиту буде таблиця 12, яка містить співпадаючі атрибути у полях F1 таблиці Т1 і F3 таблиці Т2:

Таблиця 12

F1

F2

F3

F4

B

101

B

200

C

102

C

201

Операція LEFT JOIN використовується для створення лівого зовнішнього об’єднання, при якому всі записи з першої (лівої) таблиці включаються в динамічний набір, навіть якщо в другій (правій) таблиці немає відповідних до них записів. Якщо у лругій таблиці, з якою виконується з’єднання, не має відповідних рядків, то замість значень її полів додається значення Null.

Задамо запит:

SELECT * FROM T1 left join T2 on T1.F1=T2.F3;

Результат – табл.13

Таблиця 13

F1

F2

F3

F4

A

100

null

null

B

101

B

201

C

102

C

202

D

103

null

null

Операція RIGHT JOIN використовується для створення правого зовнішнього об’єднання, при якому всі записи з другої (правої) таблиці включаються в динамічний набір, навіть якщо в першій (лівій) таблиці немає відповідних до них записів. Якщо у першій таблиці, з якою виконується з’єднання, не має відповідних рядків, то замість значень її полів додається значення Null.

Операції JOIN можуть бути вкладеними.

Синтаксис:

SELECT <поля> FROM <таблиця1> INNER JOIN ( <таблиця2> INNER JOIN [ ( ] <таблиця3> [INNER JOIN [ ( ] <таблицяX> [INNER JOIN…)] [ ON <таблиця3>.<поле3> <операція> <таблицяХ>.<полеХ> ] [ ON <таблиця2>.<поле2> <операція> <таблиця3>.<поле3>) ] ON <таблиця1>.<поле1> <операція>

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]