Мова вибірки даних
1. Багатотабличні запити
Більшість СУБД підтримую три варіанти запитів до множини таблиць з допомогою одного
SQL-запиту на вибірку: з’єднання, підзапити і об'єднання.
З'єднання використовується у запитах SELECT для генерації наборів, містять стовпці з
декількох таблиць, які зберігають пов'язані дані. Множина стовпців, вибраних з кожної
таблиці, називаються потоками. Процес з'єднання об'єднує вибрані стовпці в єдиний
вихідний набір даних. Стандарти SQL підтримують два варіанти синтаксису з'єднання:
неявне і явне з'єднання.
Неявне з'єднання відповідає більш старому SQL-стандарту (89). Таблиці, які беруть участь у
з'єднанні, задаються списком в реченні FROM запиту SELECT. Умови для зв'язку таблиць
задаються серед умов пошуку пропозиції WHERE. Не існує спеціального синтаксису для
вказівки, які умови використовуються для пошуку, а які - для з'єднання.
У стандарті SQL92 введений більш універсальний синтаксис явного з'єднання, яке
здійснюється за допомогою пропозиції JOIN., яка дає можливість відділити умови
з'єднання від умов пошуку.
Підзапитом є запит, взятий у круглі дужки і вкладений в пропозицію SELECT, FROM, WHERE
або HAVING основного (зовнішнього) запиту SELECT або інших запитів, що
використовують ці пропозиції.
Запити об'єднання, реалізовані за допомогою пропозиції UNION, дають можливість
вибрати рядки з різних наборів даних в об'єднаний набір даних, причому підмножини
не обов'язково повинні бути пов'язані одна з одною - просто вони повинні відповідати
структурно.
1.1. Неявне з’єднання таблиць
де
Алгоритм виконання запитів на неявне з'єднання таблиць складається
з наступних етапів:
1) обчислюється декартовий добуток таблиць, що входять у з'єднання,
тобто для кожного рядка однієї з таблиць беруться всі можливі
комбінації рядків з інших таблиць;
2) проводиться відбір рядків з отриманої таблиці згідно з умовою
пошуку в пропозиції WHERE;
3) здійснюється проекція (виведення) по стовпцях, що зазначені у
списку елементів, які повертаються.
1.1. Неявне з’єднання таблиць
З'єднання таблиць - це окремий
випадок операції
декартового добутку (або
просто добутку). Декартовий
добуток двох таблиць - це
таблиця, яка складається з
усіх можливих пар рядків обох
таблиць. У SQL декартовий
добуток виражається
зазначенням імен таблиць
(множників) у фразі FROM і
вказівкою всіх їх стовпців у
фразі SELECT. Так, добуток
таблиць FACULTY і
DEPARTMENT виражається
наступним чином:
1.1. Неявне з’єднання таблиць
Серед запитів на з'єднання таблиць найбільш поширені запити до таблиць,
які зв'язані за допомогою відношенням батько-нащадок. Щоб
використовувати в запиті відношення батько-нащадок, необхідно задати
<условие_соединения>, в якому первинний ключ батьківської таблиці
порівнюється із зовнішнім ключем таблиці-нащадка (зазвичай імена цих
стовпців збігаються в зв'язаних таблицях). Зв'язок повинен завжди явно
вказуватися в пропозиції WHERE запиту SELECT.
1.1. Неявне з’єднання таблиць. Псевдоніми
1.2. Явне з’єднання таблиць
де
Таким чином,
існують різні типи
явного з'єднання
таблиць.
Перехресне
з'єднання
CROSS JOIN
• використовується без конструкції ON <условие_соединения>.
• CROSS JOIN еквівалентний декартовому добутку таблиць. Тобто конструкція ... FROM A
CROSS JOIN B повністю еквівалентна конструкції ... FROM A, B
• використовується без конструкції ON <условие_соединения>.
• CROSS JOIN еквівалентний декартовому добутку таблиць. Тобто конструкція ... FROM A
CROSS JOIN B повністю еквівалентна конструкції ... FROM A, B
Уточнені
з'єднання
• припускають явне завдання умови з'єднання після ON або імен стовпців, по яких проводиться
з'єднання, після USING:
• INNER JOIN - «внутрішнє» з'єднання. У таблицях з'єднуються тільки ті рядки, для яких виконується
<условие_соединения>;
• OUTER JOIN - «зовнішнє» з'єднання. Дане ключове слово є необов'язковим і має сенс тільки в
комбінації з ключовим словом визначення типу зовнішнього з'єднання. Зовнішнє з'єднання буває
трьох типів:
• LEFT (OUTER) JOIN - «ліве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені
всі рядки лівої таблиці і тільки ті рядки правої таблиці, для яких виконується
<условие_соединения>;
• RIGHT (OUTER) JOIN - «праве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть
включені всі рядки правої таблиці і тільки ті рядки лівої таблиці, для яких виконується
<условие_соединения>;
• FULL (OUTER) JOIN - «повне (зовнішнє)» з'єднання. Це комбінація «лівого» і «правого» з'єднань
таблиць.
• Якщо не зазначений тип з'єднання в реченні JOIN, то він по замовчуванням приймається за INNER.
• припускають явне завдання умови з'єднання після ON або імен стовпців, по яких проводиться
з'єднання, після USING:
• INNER JOIN - «внутрішнє» з'єднання. У таблицях з'єднуються тільки ті рядки, для яких виконується
<условие_соединения>;
• OUTER JOIN - «зовнішнє» з'єднання. Дане ключове слово є необов'язковим і має сенс тільки в
комбінації з ключовим словом визначення типу зовнішнього з'єднання. Зовнішнє з'єднання буває
трьох типів:
• LEFT (OUTER) JOIN - «ліве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені
всі рядки лівої таблиці і тільки ті рядки правої таблиці, для яких виконується
<условие_соединения>;
• RIGHT (OUTER) JOIN - «праве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть
включені всі рядки правої таблиці і тільки ті рядки лівої таблиці, для яких виконується
<условие_соединения>;
• FULL (OUTER) JOIN - «повне (зовнішнє)» з'єднання. Це комбінація «лівого» і «правого» з'єднань
таблиць.
• Якщо не зазначений тип з'єднання в реченні JOIN, то він по замовчуванням приймається за INNER.
Природне
з'єднання
Стандарт SQL визначає це з'єднання як результат з'єднання таблиць по всіх однойменних
стовпцях. Якщо однойменних стовпців немає, виконується перехресне з'єднання CROSS
JOIN. Не вимагає завдання будь-яких умов після ON. Може застосовуватися при
внутрішньому і зовнішньому з'єднанні таблиць.
Стандарт SQL визначає це з'єднання як результат з'єднання таблиць по всіх однойменних
стовпцях. Якщо однойменних стовпців немає, виконується перехресне з'єднання CROSS
JOIN. Не вимагає завдання будь-яких умов після ON. Може застосовуватися при
внутрішньому і зовнішньому з'єднанні таблиць.
1.2. Явне з’єднання таблиць
1.2. Явне з’єднання таблиць
або
Sql select 2
Sql select 2
Sql select 2
Sql select 2
Sql select 2
1.3. Стандартне з’єднання (об’єднання) таблиць.
Декартовий добуток
або
1.3. Стандартне з’єднання (об’єднання) таблиць.
Еквіз’єднання
або
1.3. Стандартне з’єднання (об’єднання) таблиць.
Природне з’єднання
або
1.3. Стандартне з’єднання (об’єднання) таблиць.
Композиція. Тета-з’єднання
Тета-з'єднання призначене для тих
випадків, коли необхідно з'єднати
дві таблиці на основі деяких умов,
відмінних від рівності.
Для створення композиції таблиць потрібно виключити з виведення всі стовпці,
за якими проводилось з'єднання таблиць, наприклад таким чином:
1.3. Стандартне з’єднання (об’єднання) таблиць.
З’єднання таблиці зі своєю копією
або
2. Функції в SQL
Є два основні класи функцій в SQL СУБД: вбудовані і визначені користувачем. У SQL
визначено множину вбудованих функцій різних категорій. Ці функції діляться на три
основні групи:
• Скалярні функції;
• Агрегатні функції;
• Функції для списку значень.
Скалярні функції (їх ще називають однорядковими) обробляють одне значення і
повертають також одне значення. Скалярні функції дозволяється використовувати
скрізь, де допускається застосування виразів. Скалярні функції бувають наступних
категорій:
• Рядкові функції, які виконують певні дії над рядками і повертають рядкові або числові
значення;
• Числові функції, які повертають числові значення на підставі заданих в аргументі
значень того ж типу;
• Функції часу і дати, які виконують різні дії над вхідними значеннями часу і дати і
повертають рядкове, числове значення або значення у форматі дати і часу;
• Функція перетворення типу.
Агрегатні функції використовуються для одержання узагальнюючих значень. Вони, на
відміну від скалярних функцій, оперують значеннями стовпців множини рядків.
Функції для списку значень представлені трьома функціями - MAXVALUE, MINVALUE і LIST.
Функції, визначені користувачем (UDF), є допоміжними програмами, написаними на мові
програмування (наприклад, C, C + + або Pascal) і скомпільовані як бібліотеки, що
спільно використовуються (DLL).
2.1. Скалярні функції. Рядкові функції
2.1. Скалярні функції. Рядкові функції
еквівалентна
2.1. Скалярні функції. Рядкові функції
2.1. Скалярні функції. Рядкові функції
2.1. Скалярні функції. Числові функції
2.1. Скалярні функції. Функції дати та часу
2.1. Скалярні функції. Функції дати та часу
або
або
де
2.1. Скалярні функції. Функція перетворення типу
2.1. Скалярні функції. Функція перетворення типу
2.2. Агрегатні функції
• AVG - середнє значення в стовпці;
• SUM - сума значень в стовпці;
• MAX - найбільше значення в стовпці;
• MIN - найменше значення в стовпці;
• COUNT - кількість значень у стовпці.
2.2. Агрегатні функції
2.3. Функції на списку значень
2.4. Додаткові можливості
Проста форма
З пошуком
2.4. Додаткові можливості
2.4. Додаткові можливості
еквівалентна
для N >= 3 еквівалентна
2.4. Додаткові можливості
або
еквівалентно
2.4. Додаткові можливості
3. Сортування результатів запиту
3. Сортування результатів запиту
4. Групування та створення простих звітів
де
або
4. Групування та створення
простих звітів
4. Групування та створення простих звітів
4. Групування та створення простих звітів
Обмеження на запити з угрупуванням:
1. У пропозиції GROUP BY повинні бути вказані стовпці або
вирази, які використовуються в якості елементів, що повертаються
пропозиції SELECT (за винятком агрегатних функцій).
2. Всі елементи списку стовпців, що повертаються, повинні мати
одне
значення для кожної групи рядків. Це означає, що елементом,
який повертається в пропозиції SELECT може бути:
• Константа;
• Агрегатна функція, що повертає
одне значення для всіх рядків, які
входять до групи;
• Елемент угруповання, який за
визначенням має одне й те ж
значення у всіх рядках групи;
• Функція, яка використовується в
якості елемента угрупування;
• Вираз, що включає в себе
перераховані вище елементи.
4. Групування та створення простих звітів
4. Групування та створення простих звітів
Як і умова пошуку в пропозиції WHERE, умова пошуку в пропозиції HAVING
може дати один із трьох наступних результатів:
•Якщо умова пошуку має значення TRUE, то група рядків залишається і
для неї генерується один рядок в результа запиту;
•Якщо умова пошуку має значення FALSE, то група рядків виключається і
рядок в результа запиту для неї не генерується;
•Якщо умова пошуку має значення NULL, то група рядків виключається і
рядок в результаті запиту для неї не генерується.
Правила обробки значень NULL в умовах пошуку для пропозиції HAVING
точно такі ж, як і для пропозиції WHERE. Пропозиція HAVING завжди повинна
використовуватися в поєднанні з пропозицією GROUP BY, хоча синтаксис
запиту SELECT не вимагає цього.
Дякую за увагу !

More Related Content

PPTX
ECUACIONES DE SEGUNDO GRADO.pptx
PPTX
Fundamentos de Odorologìa resumen
PPT
Ppt n°2 expresiones algebraicas
PPT
Sql select 3
PPT
Sql select 1
PPT
Sql dml
PPT
Презентація курсу "БД та ІС"
PPT
САПР_СALS
ECUACIONES DE SEGUNDO GRADO.pptx
Fundamentos de Odorologìa resumen
Ppt n°2 expresiones algebraicas
Sql select 3
Sql select 1
Sql dml
Презентація курсу "БД та ІС"
САПР_СALS

Similar to Sql select 2 (9)

PPTX
Копіювання, переміщення, автозаповнення та вилучення даних
PPTX
Sql ddl
PPSX
4 прикладна система – табличний процесор
PPT
PPTX
04-Joins.pptx
DOCX
Урок №21 8 клас
PDF
урок 4 excel
PPT
Sql global
PPSX
інформатика 11 клас розділ 10 формули
Копіювання, переміщення, автозаповнення та вилучення даних
Sql ddl
4 прикладна система – табличний процесор
04-Joins.pptx
Урок №21 8 клас
урок 4 excel
Sql global
інформатика 11 клас розділ 10 формули
Ad

More from Halyna Melnyk (11)

PDF
Lect ai 3 ga
PDF
Lect аі 2 n net p2
PDF
Lect ai 2 nn
PDF
Lect 6 prolog
PDF
Lect 5 prolog
PDF
Lect 3 4 prolog
PDF
Lect 2 prolog
PDF
Lect 1 intro
PPT
Sql granting
PPT
Sql view
PPTX
Lect ai 3 ga
Lect аі 2 n net p2
Lect ai 2 nn
Lect 6 prolog
Lect 5 prolog
Lect 3 4 prolog
Lect 2 prolog
Lect 1 intro
Sql granting
Sql view
Ad

Recently uploaded (18)

PDF
8_mys_g_2025 - влат пвлтп влт пвлатп лвв
PDF
akjgaksdj lkaыдуко локж оуыпж оывджл апоыв
PDF
ы плоывдлпоявлпо яылпояылв по влполвдпо в
PDF
яалво вдлаопядвл опдлыв ояпвояыр пывора в
PDF
8_t_h_2025 - ядв пдвлаопялво пядлво плдвв
PDF
яво рпядлв опялдыво пялдыв оплядыв оп ояыл
PPTX
Презентація 7 клас Урок 1. Комп'ютерні мережі
PDF
"Фах" (аналіз твору) Айзек Азімов (презентація)
PDF
Заняття 6. Прийняття рішення командиром взводу на бій на основі APSP (Army Pr...
PDF
8_in_b_2025 - лютв лвотп ячлвт плвт ядвл
PPTX
Підсумки атестації випускників 2025 року
PDF
в пявлапо жлваопвлад опявл аопялвдао плва
PPT
Підсумки атестації здобувачів другого (магістерського) рівня вищої освіти 20...
PDF
Інформація щодо фактичного використання бюджетних коштів в липні 2025 році
PDF
ывла пявдлоп явдла опдвяла опдвла опявлпов
PDF
КНУ, презентація по вступній кампанії_2025
PDF
Заняття 6. Прийняття рішення командиром взводу на бій на основі APSP (Army Pr...
PDF
Заняття 5. Методика прийняття рішень на основі APSP (Army Problem Solving Pro...
8_mys_g_2025 - влат пвлтп влт пвлатп лвв
akjgaksdj lkaыдуко локж оуыпж оывджл апоыв
ы плоывдлпоявлпо яылпояылв по влполвдпо в
яалво вдлаопядвл опдлыв ояпвояыр пывора в
8_t_h_2025 - ядв пдвлаопялво пядлво плдвв
яво рпядлв опялдыво пялдыв оплядыв оп ояыл
Презентація 7 клас Урок 1. Комп'ютерні мережі
"Фах" (аналіз твору) Айзек Азімов (презентація)
Заняття 6. Прийняття рішення командиром взводу на бій на основі APSP (Army Pr...
8_in_b_2025 - лютв лвотп ячлвт плвт ядвл
Підсумки атестації випускників 2025 року
в пявлапо жлваопвлад опявл аопялвдао плва
Підсумки атестації здобувачів другого (магістерського) рівня вищої освіти 20...
Інформація щодо фактичного використання бюджетних коштів в липні 2025 році
ывла пявдлоп явдла опдвяла опдвла опявлпов
КНУ, презентація по вступній кампанії_2025
Заняття 6. Прийняття рішення командиром взводу на бій на основі APSP (Army Pr...
Заняття 5. Методика прийняття рішень на основі APSP (Army Problem Solving Pro...

Sql select 2

  • 2. 1. Багатотабличні запити Більшість СУБД підтримую три варіанти запитів до множини таблиць з допомогою одного SQL-запиту на вибірку: з’єднання, підзапити і об'єднання. З'єднання використовується у запитах SELECT для генерації наборів, містять стовпці з декількох таблиць, які зберігають пов'язані дані. Множина стовпців, вибраних з кожної таблиці, називаються потоками. Процес з'єднання об'єднує вибрані стовпці в єдиний вихідний набір даних. Стандарти SQL підтримують два варіанти синтаксису з'єднання: неявне і явне з'єднання. Неявне з'єднання відповідає більш старому SQL-стандарту (89). Таблиці, які беруть участь у з'єднанні, задаються списком в реченні FROM запиту SELECT. Умови для зв'язку таблиць задаються серед умов пошуку пропозиції WHERE. Не існує спеціального синтаксису для вказівки, які умови використовуються для пошуку, а які - для з'єднання. У стандарті SQL92 введений більш універсальний синтаксис явного з'єднання, яке здійснюється за допомогою пропозиції JOIN., яка дає можливість відділити умови з'єднання від умов пошуку. Підзапитом є запит, взятий у круглі дужки і вкладений в пропозицію SELECT, FROM, WHERE або HAVING основного (зовнішнього) запиту SELECT або інших запитів, що використовують ці пропозиції. Запити об'єднання, реалізовані за допомогою пропозиції UNION, дають можливість вибрати рядки з різних наборів даних в об'єднаний набір даних, причому підмножини не обов'язково повинні бути пов'язані одна з одною - просто вони повинні відповідати структурно.
  • 3. 1.1. Неявне з’єднання таблиць де Алгоритм виконання запитів на неявне з'єднання таблиць складається з наступних етапів: 1) обчислюється декартовий добуток таблиць, що входять у з'єднання, тобто для кожного рядка однієї з таблиць беруться всі можливі комбінації рядків з інших таблиць; 2) проводиться відбір рядків з отриманої таблиці згідно з умовою пошуку в пропозиції WHERE; 3) здійснюється проекція (виведення) по стовпцях, що зазначені у списку елементів, які повертаються.
  • 4. 1.1. Неявне з’єднання таблиць З'єднання таблиць - це окремий випадок операції декартового добутку (або просто добутку). Декартовий добуток двох таблиць - це таблиця, яка складається з усіх можливих пар рядків обох таблиць. У SQL декартовий добуток виражається зазначенням імен таблиць (множників) у фразі FROM і вказівкою всіх їх стовпців у фразі SELECT. Так, добуток таблиць FACULTY і DEPARTMENT виражається наступним чином:
  • 5. 1.1. Неявне з’єднання таблиць Серед запитів на з'єднання таблиць найбільш поширені запити до таблиць, які зв'язані за допомогою відношенням батько-нащадок. Щоб використовувати в запиті відношення батько-нащадок, необхідно задати <условие_соединения>, в якому первинний ключ батьківської таблиці порівнюється із зовнішнім ключем таблиці-нащадка (зазвичай імена цих стовпців збігаються в зв'язаних таблицях). Зв'язок повинен завжди явно вказуватися в пропозиції WHERE запиту SELECT.
  • 6. 1.1. Неявне з’єднання таблиць. Псевдоніми
  • 7. 1.2. Явне з’єднання таблиць де Таким чином, існують різні типи явного з'єднання таблиць. Перехресне з'єднання CROSS JOIN • використовується без конструкції ON <условие_соединения>. • CROSS JOIN еквівалентний декартовому добутку таблиць. Тобто конструкція ... FROM A CROSS JOIN B повністю еквівалентна конструкції ... FROM A, B • використовується без конструкції ON <условие_соединения>. • CROSS JOIN еквівалентний декартовому добутку таблиць. Тобто конструкція ... FROM A CROSS JOIN B повністю еквівалентна конструкції ... FROM A, B Уточнені з'єднання • припускають явне завдання умови з'єднання після ON або імен стовпців, по яких проводиться з'єднання, після USING: • INNER JOIN - «внутрішнє» з'єднання. У таблицях з'єднуються тільки ті рядки, для яких виконується <условие_соединения>; • OUTER JOIN - «зовнішнє» з'єднання. Дане ключове слово є необов'язковим і має сенс тільки в комбінації з ключовим словом визначення типу зовнішнього з'єднання. Зовнішнє з'єднання буває трьох типів: • LEFT (OUTER) JOIN - «ліве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені всі рядки лівої таблиці і тільки ті рядки правої таблиці, для яких виконується <условие_соединения>; • RIGHT (OUTER) JOIN - «праве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені всі рядки правої таблиці і тільки ті рядки лівої таблиці, для яких виконується <условие_соединения>; • FULL (OUTER) JOIN - «повне (зовнішнє)» з'єднання. Це комбінація «лівого» і «правого» з'єднань таблиць. • Якщо не зазначений тип з'єднання в реченні JOIN, то він по замовчуванням приймається за INNER. • припускають явне завдання умови з'єднання після ON або імен стовпців, по яких проводиться з'єднання, після USING: • INNER JOIN - «внутрішнє» з'єднання. У таблицях з'єднуються тільки ті рядки, для яких виконується <условие_соединения>; • OUTER JOIN - «зовнішнє» з'єднання. Дане ключове слово є необов'язковим і має сенс тільки в комбінації з ключовим словом визначення типу зовнішнього з'єднання. Зовнішнє з'єднання буває трьох типів: • LEFT (OUTER) JOIN - «ліве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені всі рядки лівої таблиці і тільки ті рядки правої таблиці, для яких виконується <условие_соединения>; • RIGHT (OUTER) JOIN - «праве (зовнішнє)» з'єднання. Це означає, що в результат запиту будуть включені всі рядки правої таблиці і тільки ті рядки лівої таблиці, для яких виконується <условие_соединения>; • FULL (OUTER) JOIN - «повне (зовнішнє)» з'єднання. Це комбінація «лівого» і «правого» з'єднань таблиць. • Якщо не зазначений тип з'єднання в реченні JOIN, то він по замовчуванням приймається за INNER. Природне з'єднання Стандарт SQL визначає це з'єднання як результат з'єднання таблиць по всіх однойменних стовпцях. Якщо однойменних стовпців немає, виконується перехресне з'єднання CROSS JOIN. Не вимагає завдання будь-яких умов після ON. Може застосовуватися при внутрішньому і зовнішньому з'єднанні таблиць. Стандарт SQL визначає це з'єднання як результат з'єднання таблиць по всіх однойменних стовпцях. Якщо однойменних стовпців немає, виконується перехресне з'єднання CROSS JOIN. Не вимагає завдання будь-яких умов після ON. Може застосовуватися при внутрішньому і зовнішньому з'єднанні таблиць.
  • 9. 1.2. Явне з’єднання таблиць або
  • 15. 1.3. Стандартне з’єднання (об’єднання) таблиць. Декартовий добуток або
  • 16. 1.3. Стандартне з’єднання (об’єднання) таблиць. Еквіз’єднання або
  • 17. 1.3. Стандартне з’єднання (об’єднання) таблиць. Природне з’єднання або
  • 18. 1.3. Стандартне з’єднання (об’єднання) таблиць. Композиція. Тета-з’єднання Тета-з'єднання призначене для тих випадків, коли необхідно з'єднати дві таблиці на основі деяких умов, відмінних від рівності. Для створення композиції таблиць потрібно виключити з виведення всі стовпці, за якими проводилось з'єднання таблиць, наприклад таким чином:
  • 19. 1.3. Стандартне з’єднання (об’єднання) таблиць. З’єднання таблиці зі своєю копією або
  • 20. 2. Функції в SQL Є два основні класи функцій в SQL СУБД: вбудовані і визначені користувачем. У SQL визначено множину вбудованих функцій різних категорій. Ці функції діляться на три основні групи: • Скалярні функції; • Агрегатні функції; • Функції для списку значень. Скалярні функції (їх ще називають однорядковими) обробляють одне значення і повертають також одне значення. Скалярні функції дозволяється використовувати скрізь, де допускається застосування виразів. Скалярні функції бувають наступних категорій: • Рядкові функції, які виконують певні дії над рядками і повертають рядкові або числові значення; • Числові функції, які повертають числові значення на підставі заданих в аргументі значень того ж типу; • Функції часу і дати, які виконують різні дії над вхідними значеннями часу і дати і повертають рядкове, числове значення або значення у форматі дати і часу; • Функція перетворення типу. Агрегатні функції використовуються для одержання узагальнюючих значень. Вони, на відміну від скалярних функцій, оперують значеннями стовпців множини рядків. Функції для списку значень представлені трьома функціями - MAXVALUE, MINVALUE і LIST. Функції, визначені користувачем (UDF), є допоміжними програмами, написаними на мові програмування (наприклад, C, C + + або Pascal) і скомпільовані як бібліотеки, що спільно використовуються (DLL).
  • 21. 2.1. Скалярні функції. Рядкові функції
  • 22. 2.1. Скалярні функції. Рядкові функції еквівалентна
  • 23. 2.1. Скалярні функції. Рядкові функції
  • 24. 2.1. Скалярні функції. Рядкові функції
  • 25. 2.1. Скалярні функції. Числові функції
  • 26. 2.1. Скалярні функції. Функції дати та часу
  • 27. 2.1. Скалярні функції. Функції дати та часу або або де
  • 28. 2.1. Скалярні функції. Функція перетворення типу
  • 29. 2.1. Скалярні функції. Функція перетворення типу
  • 30. 2.2. Агрегатні функції • AVG - середнє значення в стовпці; • SUM - сума значень в стовпці; • MAX - найбільше значення в стовпці; • MIN - найменше значення в стовпці; • COUNT - кількість значень у стовпці.
  • 32. 2.3. Функції на списку значень
  • 40. 4. Групування та створення простих звітів де або
  • 41. 4. Групування та створення простих звітів
  • 42. 4. Групування та створення простих звітів
  • 43. 4. Групування та створення простих звітів Обмеження на запити з угрупуванням: 1. У пропозиції GROUP BY повинні бути вказані стовпці або вирази, які використовуються в якості елементів, що повертаються пропозиції SELECT (за винятком агрегатних функцій). 2. Всі елементи списку стовпців, що повертаються, повинні мати одне значення для кожної групи рядків. Це означає, що елементом, який повертається в пропозиції SELECT може бути: • Константа; • Агрегатна функція, що повертає одне значення для всіх рядків, які входять до групи; • Елемент угруповання, який за визначенням має одне й те ж значення у всіх рядках групи; • Функція, яка використовується в якості елемента угрупування; • Вираз, що включає в себе перераховані вище елементи.
  • 44. 4. Групування та створення простих звітів
  • 45. 4. Групування та створення простих звітів Як і умова пошуку в пропозиції WHERE, умова пошуку в пропозиції HAVING може дати один із трьох наступних результатів: •Якщо умова пошуку має значення TRUE, то група рядків залишається і для неї генерується один рядок в результа запиту; •Якщо умова пошуку має значення FALSE, то група рядків виключається і рядок в результа запиту для неї не генерується; •Якщо умова пошуку має значення NULL, то група рядків виключається і рядок в результаті запиту для неї не генерується. Правила обробки значень NULL в умовах пошуку для пропозиції HAVING точно такі ж, як і для пропозиції WHERE. Пропозиція HAVING завжди повинна використовуватися в поєднанні з пропозицією GROUP BY, хоча синтаксис запиту SELECT не вимагає цього.