Здавалка
Главная | Обратная связь

DМL: команди вибірки даних



Мова реляційних БД SQL: засоби маніпулювання даними. Тривіальні запити

DМL: команди вибірки даних

Усі запити на одержання практично будь-якої кількості даних з однієї чи кількох таблиць виконуються за допомогою єдиного речення SELECT. У загальному випадку результатом реалізації речення SELECT є інша таблиця. До цієї нової (робочої) таблиці може бути знову застосована операція SELECT і т.д., тобто такі операції можуть бути вкладені друг у друга. Оператор SELECT визначений у SQL для будь-якого добування записів з таблиць. За допомогою цієї команди здійснюється не тільки операція реляційної алгебри "вибірка" (горизонтальна підмножина), але і попереднє з'єднання (join) двох і більш таблиць. Це найбільш складний і могутній засіб SQL. Становить історичний інтерес той факт, що саме можливість включення одного речення SELECT усередину іншого послужила мотивуванням використання прикметника "структурований" у назві мови SQL.

Речення SELECT може використовуватися як:

· самостійна команда на одержання і виведення рядків таблиці, сформованої зі стовпців і рядків однієї чи кількох таблиць (представлень);

· елемент WHERE- чи HAVING-умови (скорочений варіант речення, називана "вкладений запит");

· фраза вибору в командах СRЕАTЕ VIEW, DECLARE CURSOR чи INSERT;

засіб присвоєння глобальним перемінним значень з рядків сформованої таблиці (INTO-фраза).

При описі синтаксичних конструкцій речення SELECT використовуються наступні позначення:

· зірочка (*) для позначення "усі" - вживається в звичайному для програмування змісті, тобто "усі випадки, що задовольняють визначенню";

· квадратні дужки ([]) - означають, що конструкції, укладені в ці дужки, є необов'язковими (тобто можуть бути опущені);

· фігурні дужки ({}) - означають, що конструкції, укладені в ці дужки, повинні розглядатися як цілі синтаксичні одиниці, тобто вони дозволяють уточнити порядок розбору синтаксичних конструкцій, заміняючи звичайні дужки, використовувані в синтаксисі SQL. Елементи цих конструкцій іноді укладені при поясненні синтаксису в кутові дужки (< >);

· трикрапка (...) - вказує на те, що безпосередньо попередня йому синтаксична одиниця факультативно може повторюватися один чи більш разів;

· пряма риса (|) - означає наявність вибору з двох чи більш можливостей. Наприклад, позначення ASC|DESC указує, можна вибрати один з термінів ASC чи DESC; коли ж один з елементів вибору укладений у квадратні дужки, те це означає, що він вибирається за замовчуванням (так, [ASC]|DESC означає, що відсутність усієї цієї конструкції буде сприйматися як вибір ASC);

· точка з комою (;) v завершальний елемент речень SQL;

· кома (,) - використовується для поділу елементів списків;

· пробіли ( ) - можуть уводитися для підвищення наочності між будь-якими синтаксичними конструкціями речень SQL;

· прописні жирні латинські букви і символи - використовуються для написання конструкцій мови SQL і повинні (якщо це спеціально не обговорено) записуватися в точності так, як показано;

· малі літери - використовуються для написання конструкцій, що повинні замінятися конкретними значеннями, обраними користувачем, причому для визначеності окремі слова цих конструкцій зв'язуються між собою символом підкреслення (_);

· терміни таблиця, стовпець, ... v- заміняють (з метою скорочення тексту синтаксичних конструкцій) терміни ім'я_таблиці, ім'я_стовпця, ..., відповідно;

· термін таблиця v використовується для узагальнення таких видів таблиць, як базова_таблиця, представлення чи псевдонім; тут псевдонім служить для тимчасового (на момент виконання запиту) перейменування і (чи) створення робочої копії базової_таблиці (представлення).

Речення SELECT (вибрати) має наступний формат:

підзапит [UNION [ALL] підзапит] ...

[ORDER BY {[таблиця.]стовпець | номер_елементу_SELECT} [[ASC] | DESC]

[,{[таблиця.]стовпець | номер_елементу_SELECT} [[ASC] | DESC]] ...;

і дозволяє об'єднати (UNION) а потім упорядкувати (ORDER BY) результати вибору даних, отриманих за допомогою кількох "підзапитов". При цьому упорядкування можна робити в порядку зростання - ASC (ASCending) чи убування DESC (DESCending), а за замовчуванням приймається ASC.

Повний синтаксис оператора SELECT має вигляд:

SELECT [ALL | DISTINCT] <список_вибору>

FROM <ім'я_таблиці>, ...

[ WHERE <умова> ]

[ GROUP BY <ім'я_стовпця>,... ]

[ HAVING <умова> ]

[ORDER BY <ім'я_стовпця> [ASC | DESC],... ];

Порядок речень в операторі SELECT повинен строго дотримуватися (наприклад, GROUP BY повинне завжди передувати ORDER BY), інакше це призведе до появи помилок.

У цьому реченні підзапит дозволяє вказати умови для вибору потрібних даних і (якщо потрібно) їхньої обробки:

SELECT

(вибрати) дані з зазначених стовпців і (якщо необхідно) виконати перед виведенням їхнє перетворення відповідно до зазначених виразів і (чи) функціями

FROM

(з) перерахованих таблиць, у яких розташовані ці стовпці

WHERE

(де) рядка з зазначених таблиць повинні задовольняти зазначеному переліку умов добору рядків

GROUP BY

(групуючи по) зазначеному переліку стовпців для того, щоб одержати для кожної групи єдине агреговане значення, використовуючи у фразі SELECT SQL-функції SUM (сума), COUNT (кількість), MIN (мінімальне значення), MAX (максимальне значення) чи AVG (середнє значення)

HAVING

(маючи) у результаті лише ті групи, що задовольняють зазначеному переліку умов добору груп

і має формат

SELECT [[ALL] | DISTINCT]{ * | елемент_SELECT [,елемент_SELECT] ...}

FROM {базова_таблиця | представлення} [псевдонім]

[,{базова_таблиця | представлення} [псевдонім]] ...

[WHERE фраза]

[GROUP BY фраза [HAVING фраза]];

Елемент_SELECT - це одна з наступних конструкцій:

[таблиця.]* | значення | SQL_функція | системна_3мінна

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







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.