- •6. 1. Опис мови sql
- •6. 2. Адміністрування баз даних
- •6. 3. Типи даних в sql
- •6. 4. Визначення даних засобами sql
- •6. 5. Відбір даних із таблиць засобами sql
- •6.5.1. Управління полями таблиці з допомогою оператора select
- •6.5.2. Використання простих критеріїв відбору записів із таблиць
- •6.5.3. Використання складених критеріїв відбору записів із таблиць
- •6.5.4. Агрегування даних. Sql-функції
- •6.5.5. Сортування записів
- •6.5.6. Зв’язування таблиць
- •6.5.7. Вкладені запити
- •6. 6. Використання математичних та рядкових функцій
6. 5. Відбір даних із таблиць засобами 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 містить список полів, які визначають порядок сортування записів результатного набору даних. За замовчуванням сортування відбувається в порядку зростання значень. Якщо необхідно посортувати по спаданню, то після імені цього поля вказується описувач DESС.
Оператори SELECT можуть мати складну структуру і бути вкладеними один в одного. Для об’єднання операторів використовується операнд UNION, в якому розміщається вкладений оператор SELECT, який називають підзапитом.
У синтаксичній конструкції оператора SELECT використовуються наступні позначення:
зірочка (*) для позначення "усі" - використовується у звичайному для програмування змісті, тобто "усі випадки, що задовольняють умову";
квадратні дужки ([]) - означають, що конструкції, укладені в ці дужки, є необов'язковими (тобто можуть бути опущені);
фігурні дужки ({}) - означають, що конструкції, укладені в ці дужки, повинні розглядатися як цілі синтаксичні одиниці, тобто вони дозволяють уточнити порядок розбору синтаксичних конструкцій, заміняючи звичайні дужки, які використовуються в синтаксисі SQL;
трикрапка (...) - вказує на те, що безпосередньо попередня йому синтаксична одиниця факультативно може повторюватися один чи більш раз;
пряма риска (|) - означає наявність вибору з двох чи більше можливостей. Наприклад, позначення ASC|DESC указує: можна вибрати один з термінів ASC чи DESC; коли ж один з елементів вибору укладений у квадратні дужки, то це означає, що він вибирається за замовчуванням (так, [ASC]|DESC означає, що відсутність усієї цієї конструкції буде сприйматися як вибір ASC);
крапка з комою (;) - завершальний елемент операторів SQL;
кома (,) - використовується для відокремлення елементів списків;
пробіли ( ) - можуть вводитися для підвищення наочності між будь-якими синтаксичними конструкціями операторів SQL;
прописні жирні латинські букви і символи - використовуються для написання конструкцій мови SQL і повинні (якщо це спеціально не обговорено) записуватися точно так, як показано;
малі літери - використовуються для написання конструкцій, що повинні замінятися конкретними значеннями, обраними користувачем, причому для визначеності окремі слова цих конструкцій зв'язуються між собою символом підкреслення (_);