Якщо ваші запити недостатньо працюють, додайте основні SQL інструкції, які допоможуть зосередити результати. Розгляньмо кілька типів інструкцій SQL, а також речення або частини, які можна відредагувати, щоб отримати потрібні результати.
Примітка.: Ця стаття не стосується веб-програм Access – виду бази даних, яку можна створити за допомогою Access і опублікувати в Інтернеті.
У цій статті
Створення інструкції Select
Інструкція вибору SQL має від двох до трьох речень. Речення SELECT указує базі даних, де шукати дані, і пропонує повернути певний результат.
Примітка.: Інструкції SELECT завжди закінчуються крапкою з комою (;) в кінці останнього речення або в рядку окремо в кінці інструкції SQL.
Наведена нижче вибрана інструкція просить Access отримати відомості зі стовпців Адреса електронної пошти та Компанія з таблиці Контакти, зокрема там, де вона знаходить слово "Сіетл" у стовпці "Місто".
У наведеному вище запиті є три речення SELECT, FROM і WHERE.
1. Речення SELECT містить стовпці, які містять дані, які потрібно використовувати, і має оператор (SELECT), а потім два ідентифікатори (Адреса електронної пошти та компанія). Якщо ідентифікатор містить пробіли або спеціальні символи (наприклад, "Адреса електронної пошти"), його потрібно взяти у квадратні дужки.
2. Речення FROM визначає вихідну таблицю. У цьому прикладі в ньому є оператор (FROM), за яким слідує ідентифікатор (Контакти).
3. Речення WHERE – це необов'язкове речення. У прикладі є оператор (WHERE), за яким слідує вираз (City="Seattle").
Докладні відомості про вибіркові запити див . в статті Створення простого вибіркового запиту.
Нижче наведено список поширених речень SQL.
Речення SQL |
Функції |
Обов'язково ? |
SELECT |
Перелічує поля, які містять потрібні дані. |
Так |
FROM |
Перелічує таблиці, у яких містяться поля, зазначені в реченні SELECT. |
Так |
WHERE |
Визначає умови для поля, яким мають відповідати всі записи, щоб бути включеними до результатів. |
Ні |
ORDER BY |
Визначає спосіб сортування результатів. |
Ні |
GROUP BY |
В інструкції SQL, яка містить агрегатні функції, перелічує поля, не зведені в реченні SELECT. |
Лише за наявності таких полів |
HAVING |
В інструкції SQL, яка містить агрегатні функції, визначає умови, які застосовуються до полів, зведених в інструкції SELECT. |
Ні |
Кожне речення SQL складається з умов. Нижче наведено список поширених термінів SQL.
Термін SQL |
Визначення |
Приклад |
ідентифікатор |
Ім'я, яке використовується для визначення об'єкта бази даних, наприклад імені стовпця. |
[Адреса електронної пошти] та компанія |
оператор |
Ключове слово, яке позначає або змінює дію. |
AS |
константа |
Значення, яке не змінюється, наприклад число або NULL-значення. |
42 |
вираз |
Комбінація ідентифікаторів, операторів, констант і функцій, яка обчислюється до одного значення. |
>= Продукти.[Ціна за одиницю] |
Настроювання речення SELECT
Настроювання |
Приклад |
Щоб переглянути лише окремі значення. Використовуйте ключове слово DISTINCT у реченні SELECT. |
Наприклад, якщо клієнти працюють із кількох різних відділень і деякі з них мають однаковий номер телефону, і ви хочете бачити номер телефону лише один раз, речення SELECT матиме такий вигляд:
|
Щоб змінити спосіб відображення ідентифікатора у вікні табличного подання даних, можна полегшити читання. Використовуйте оператор AS (ключове слово, яке представляє дію або змінює дію) з псевдонімом поля в реченні SELECT. Псевдонім поля – це ім'я, яке призначається полю, щоб полегшити читання результатів. |
|
Настроювання речення FROM
Настроювання |
Приклад |
У вибраній інструкції можна використовувати псевдонім таблиці або інше ім'я, призначене таблиці. Псевдонім таблиці корисний, якщо ім'я таблиці довге, особливо якщо у вас є кілька полів з однаковими іменами з різних таблиць. |
Щоб вибрати дані з двох полів, обидва іменовані ідентифікатори, одне з яких походить із таблиці tblCustomer, а інше – з таблиці tblOrder:
Використовуйте оператор AS для визначення псевдонімів таблиці в реченні FROM:
Потім ви можете використовувати ці псевдоніми таблиці в реченні SELECT, як описано нижче.
|
Використовуйте об'єднання, щоб об'єднувати пари записів із двох джерел даних в один результат або вказати, чи включати записи з будь-якої таблиці, якщо відповідний запис у пов'язаній таблиці відсутній. Об'єднання таблиць таким чином, щоб запит об'єднав елементи з таблиць і виключав елементи, якщо в іншій таблиці немає відповідного запису |
Ось як може виглядати речення FROM:
|
Використання об'єднань
Існує два типи об'єднань: внутрішнє та зовнішнє об'єднання. Внутрішні об'єднання частіше зустрічаються в запитах. Під час виконання запиту з внутрішнім об'єднанням результат відображає лише ті елементи, у яких спільне значення існує в обох об'єднуваних таблицях.
Зовнішні об'єднання визначають, чи слід включати дані, у яких немає спільного значення. Зовнішнє об'єднання спрямоване, тобто можна вказати, чи включати всі записи з першої таблиці, указаної в об'єднанні (так зване ліве об'єднання), або включити всі записи з другої таблиці в об'єднання (так зване праве об'єднання). Зовнішнє об'єднання має такий синтаксис SQL:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Докладні відомості про використання об'єднань у запиті див. в статті Об'єднання таблиць і запитів.
Настроювання речення WHERE
Речення WHERE містить умови, які дають змогу обмежити кількість елементів, які повертаються в запиті. Перегляньте приклади умов запиту та принцип їх роботи.
Приклад того, як можна настроїти основне речення WHERE, – обмежити результати запиту; Припустімо, що потрібно знайти номер телефону клієнта та пригадати лише його прізвище як Bagel. У цьому прикладі прізвища зберігаються в полі "Прізвище", тому синтаксис SQL матиме такий синтаксис:
WHERE [LastName]='Bagel'
Речення WHERE також використовується, щоб об'єднувати джерела даних для стовпців, які містять однакові дані, але різні типи даних. Це зручно, оскільки не можна створити об'єднання між полями з різними типами даних. Використовуйте одне поле як умову для іншого поля з ключовим словом LIKE . Наприклад, якщо потрібно використовувати дані з таблиці "Активи" та "Працівники", лише якщо тип активу в полі "Тип активу" таблиці "Активи" має число 3 в полі "Кількість" таблиці "Працівники", ось як виглядатиме речення WHERE:
WHERE field1 LIKE field2
Увага!: У реченні WHERE не можна вказати умови для поля, яке використовується з агрегатним функцією. Натомість використовуйте речення HAVING, щоб указати умови для агрегованих полів.
Настроювання за допомогою оператора UNION
Використовуйте оператор UNION, якщо потрібно переглянути комбіноване подання результатів із кількох схожих вибіркових запитів. Наприклад, якщо в базі даних є таблиця "Товари" та "Послуги" та вони обидва мають три поля: ексклюзивна пропозиція, продукт або послуга, ціна, гарантія або гарантія. Хоча в таблиці "Товари" зберігаються відомості про гарантію, а в таблиці "Служби" зберігаються гарантійні відомості, базова інформація однакова. За допомогою запиту на об'єднання можна об'єднати три поля з двох таблиць, як описано нижче.
SELECT name, price, warranty, exclusive_offer
FROM Products UNION ALL SELECT name, price, guarantee, exclusive_offer FROM Services;
Під час виконання запиту дані з кожного набору відповідних полів об'єднуються в одне поле виводу. Щоб додати до результатів будь-які повторювані рядки, скористайтеся оператором ALL.
Примітка.: Оператор Select має містити однакову кількість полів виводу в однаковому порядку та з однаковими або сумісними типами даних. Для запиту на об’єднання типи даних "Текст" і "Число" вважаються сумісними.
Докладні відомості про запити на об'єднання див. в статті Використання запиту на об'єднання для перегляду уніфікованого результату з кількох запитів.