DМL: команди вибірки данихСтр 1 из 4Следующая ⇒
Мова реляційних БД 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 Все права принадлежат авторам размещенных материалов.
|