
. Відбір даних із таблиць засобами sql
Відбір даних із таблиць полягає в одержанні із них полів і записів, які задовільняють певні умови. Результат виконання запиту, на основі якого відбираються записи, називають вибіркою. Дані можна вибирати із однієї або декількох таблиць з допомогою оператора SELECT. Він має наступний формат:
SELECT [DISTINCT] {*| <Список полів>}
FROM <Список таблиць>
[WHERE <Умови відбору>]
[ORDER BY <Список полів для сортування>]
[GROUP BY <список полів для групування>]
[HAVING <умови групування>]
[UNION <вкладенний оператор SELECT>]
Тут SELECT – ключове слово, яке повідомляє СУБД, що ця команда – запит. Всі запити починаються цим словом з наступним пробілом.
В результатному наборі даних можуть дозволятися або не дозволятися записи, які повторюються (тобто мають одинакові значення всіх полів). Цим режимом керує оператор DISTINCT. Якщо він відсутній, то в наборі даних дозволяються записи, які повторюються.
В оператор SELECT обов’язково включається: список полів і операнд FROM, інші операнди можуть бути відсутні. Ключове слово FROM з наступним пробілом й іменами таблиць вказує на джерело інформації для запиту. В списку таблиць повинна бути як мінімум одна таблиця.
Якщо в набір даних потрібно включити всі поля таблиці, то замість перерахованих імен полів вказують символ “*”. Якщо список містить поля декількох таблиць, то для вказання належності поля до таблиці використовують складене ім’я, яке включає ім’я таблиці та ім’я поля, розділені крапкою:
<ім’я таблиці>.<ім’я поля>.
Операнд WHERE задає умови (критерії) відбору, які повинні задовольняти записи в результатному наборі даних. Вираз, який описує умову відбору, є логічним. Його елементами можуть бути імена полів, операції порівняння, арифметичні і логічні операції, спеціальні функції LIKE, NULL, IN.
Операнд GROUP BY дозволяє виділяти групи записів в результатному наборі даних. Групою є записи з однаковими значеннями в полях, перерахованим за операндом GROUP BY.
Операнд HAVING діє сумісно з оператором GROUP BY і використовується для відбору записів всередині групи.
Операнд ORDER BY містить список полів, які визначають порядок сортування записів результатного набору даних. По замовчуванню сортування відбувається в порядку зростання значень. Якщо необхідно посортувати по спаданню, то після імені цього поля вказується описувач DESK.
Оператори SELECT можуть мати складну структуру і бути вкладеними один в одного. Для об’єднання операторів використовується операнд UNION, в якому розміщається вкладений оператор SELECT, який називають підзапитом.
Тут у синтаксичних конструкціях використовуються наступні позначення:
зірочка (*) для позначення "усі" - використовується у звичайному для програмування змісті, тобто "усі випадки, що задовольняють умову";
квадратні дужки ([]) - означають, що конструкції, укладені в ці дужки, є необов'язковими (тобто можуть бути опущені);
фігурні дужки ({}) - означають, що конструкції, укладені в ці дужки, повинні розглядатися як цілі синтаксичні одиниці, тобто вони дозволяють уточнити порядок розбору синтаксичних конструкцій, заміняючи звичайні дужки, які використовуються в синтаксисі SQL;
трикрапка (...) - вказує на те, що безпосередньо попередня йому синтаксична одиниця факультативно може повторюватися один чи більш раз;
пряма риска (|) - означає наявність вибору з двох чи більше можливостей. Наприклад, позначення ASC|DESC указує: можна вибрати один з термінів ASC чи DESC; коли ж один з елементів вибору укладений у квадратні дужки, то це означає, що він вибирається за замовчуванням (так, [ASC]|DESC означає, що відсутність усієї цієї конструкції буде сприйматися як вибір ASC);
крапка з комою (;) - завершальний елемент операторів SQL;
кома (,) - використовується для відокремлення елементів списків;
пробіли ( ) - можуть вводитися для підвищення наочності між будь-якими синтаксичними конструкціями операторів SQL;
прописні жирні латинські букви і символи - використовуються для написання конструкцій мови SQL і повинні (якщо це спеціально не обговорено) записуватися точно так, як показано;
малі літери - використовуються для написання конструкцій, що повинні замінятися конкретними значеннями, обраними користувачем, причому для визначеності окремі слова цих конструкцій зв'язуються між собою символом підкреслення (_);
терміни таблиця, стовпець, ... - заміняють (з метою скорочення тексту синтаксичних конструкцій) терміни ім'я_таблиці, ім'я_стовпця, ..., відповідно;
термін таблиця - використовується для узагальнення таких видів таблиць, як базова_таблиця, вигляд чи псевдонім; тут псевдонім служить для тимчасового (на момент виконання запиту) перейменування і (чи) створення робочої копії базової_таблиці (вигляду).