Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OBDZ5_Lect_12.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
117.6 Кб
Скачать

Частина order by

 

У загальному випадку рядки в результуючій таблиці SQL-запиту ніяк не впорядковані. Однак їх можна необхідним чином відсортувати, для чого в оператор SELECT , поміщається фраза ORDER BY, яка сортує дані вихідного набору в заданій послідовності. Сортування може виконуватися за кількома полями, в цьому випадку вони перераховуються за ключовим словом ORDER BY через кому. Спосіб сортування задається ключовим словом, вказуються в рамках параметра ORDER BY слідом за назвою поля, по якому виконується сортування. За замовчуванням реалізується сортування за зростанням. Явно вона задається ключовим словом ASC. Для виконання сортування у зворотній послідовності необхідно після імені поля, по якому вона виконується, вказати ключове слово DESC. Фраза ORDER BY дозволяє впорядкувати вибрані записи в порядку зростання або зменшення значень будь-якого стовпця або комбінації стовпців, незалежно від того, чи присутні ці стовпці в таблиці результату чи ні. Фраза ORDER BY завжди повинна бути останнім елементом в операторі SELECT .

Приклад 6. Вивести список клієнтів в алфавітному порядку.

SELECT Клієнт.Фамілія, Клієнт.Фірма

FROM Клиент

ORDER BY Клієнт.Фамілія

Приклад нотації для визначення оператора select в Oracle

Нижче наведено тільки перші два рівня деталізації опису семантики запису SELECT оператора в SQL, детальну та повну інформацію можна знайти для Oracle 10g за посиланням:

http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_10002.htm#SQLRF01702

select::=

subquery::=

Або те саме в текстовому вигляді:

Query ::= subquery [ for_update_clause ] ;

subquery ::= [subquery_factoring_clause ]

SELECT

[ hint ]

[ { { DISTINCT | UNIQUE }

| ALL

}

]

select_list

FROM { table_reference [, table_reference ]...

| join_clause

| ( join_clause )

}

[ where_clause ]

[ hierarchical_query_clause ]

[ group_by_clause ]

[ HAVING condition ]

[ model_clause ]

[ { UNION [ ALL ]

| INTERSECT

| MINUS

}

(subquery)

]

[ order_by_clause ]

Співвідношення реляційної алгебри та структурованої мови запитів

Проекція

  • Оператор проекції вибирає з відношення R нове відношення, що містить тільки деякі з стовпці R.

  • Отримати відношення, що включає тільки задані атрибути відношення R:

RA

SQL SELECT A1, A2,…, An

FROM R;

Селекція

  • Оператор селекції після застосування до відношення R дає нове відношення з підмножиною кортежів R.

  • Кортежі в результуючому відношенні задовольняють деякій умові C, що включає атрибути R:

RA

SQL SELECT *

FROM R

WHERE C;

  • Частина WHERE SQL синтаксису відповідає

Селекція: синтаксис умови

  • Синтаксис: схожий на умовами в мовах програмування.

  • Порівнювані значення – констант та атрибути відношень.

  • Ми можемо застосовувати звичайні арифметичні оператори до числових значень для їх порівняння:

RA Порівняти значення з використанням стандартних арифметичних операторів.

SQL Порівняти значення за допомогою =, <>, <, >, <=, >=.

Операції над множинами: Об'єднання

  • Об'єднанням двох відношень R і S є множина кортежів, що належать R або S або обом відношенням одночасно.

  • R і S повинні мати однакові набори атрибутів і типи атрибутів повинні бути однаковими.

  • Атрибути R і S мають з’являтись в однаковому порядку.

RA

SQL (SELECT * FROM R)

UNION

(SELECT * FROM S);

Операції над множинами: перетин

  • Перетином двох відношень R і S є множина кортежів, які присутні одночасно в R і S.

  • Ті ж умови на R і S, як і для оператору об'єднання UNION.

RA

SQL (SELECT * FROM R)

INTERSECT

(SELECT * FROM S);

Операції над множинами: Різниця

  • Різницею двох відношень R і S є множина кортежів, які знаходяться в R, але не в S.

  • Ті ж умови на R і S, як і для оператору об'єднання UNION.

RA

SQL (SELECT * FROM R)

EXCEPT

(SELECT * FROM S);

  • Порівняйте:

(SELECT * FROM R)

EXCEPT

((SELECT * FROM R)

EXCEPT

(SELECT * FROM S));

(SELECT * FROM R);

INTERSECT

(SELECT * FROM S);

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