Примітка.: Ми хочемо надавати найновіший вміст довідки рідною мовою користувачів якомога швидше. Цю сторінку перекладено за допомогою засобу автоматичного перекладу, тому вона може містити смислові, синтаксичні або граматичні помилки. Ми вважаємо, що цей вміст стане вам у пригоді. Повідомте нас, чи була інформація корисною, унизу цієї сторінки. Для зручності цю статтю можна переглянути англійською мовою.
Якщо запити працюють недостатньо добре, додавши кілька базових інструкцій SQL, можна уточнити результати. Нижче розглянуто кілька типів інструкцій SQL і речень або частин, які можна змінити, щоб отримати потрібні результати.
Примітка.: Ця стаття не стосується веб-програм Access – виду бази даних, яку можна створити за допомогою Access і опублікувати в Інтернеті.
У цій статті
Створення інструкції SELECT
Інструкція SQL SELECT має від двох до трьох речень. Речення SELECT указує базі даних, де шукати дані, і вимагає від неї повернути певний результат.
Примітка.: Інструкції SELECT закінчуються крапкою з комою (;) в кінці останнього речення або окремо в рядку в кінці інструкції SQL.
Наведена нижче інструкція SELECT запитує у програми Access інформацію зі стовпців E-mail Address і Company таблиці Contacts, зокрема з тих стовпців, для яких у стовпці City міститься значення «Seattle».
Наведений вище запит має три речення: SELECT, FROM і WHERE.
1. Речення SELECT перелічує стовпці, які містять потрібні дані, і містить оператор (SELECT), за яким слідують два ідентифікатори («Адреса електронної пошти» і «Компанія»). Якщо ідентифікатор містить пробіли або спеціальні символи (наприклад, ідентифікатор «Адреса електронної пошти»), його потрібно взяти у квадратні дужки.
2. Речення FROM визначає вихідну таблицю. У цьому прикладі воно містить оператор (FROM), за яким слідує ідентифікатор («Контакти»).
3. Речення WHERE це необов’язкове речення. У прикладі воно містить оператор (WHERE), за яким слідує вираз (Місто="Київ").
Докладні відомості про вибіркових запитів відображається створити простий Вибірковий запит.
Ось список типових речень 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
Настроювання | Приклад |
---|---|
В інструкції SELECT можна використовувати псевдонім таблиці або інше ім’я, призначене таблиці. Псевдонім таблиці зручно використовувати, якщо таблиця має довге ім’я, особливо якщо є багато полів із тим самим ім’ям із різних таблиць. |
Щоб вибрати дані із двох полів з однаковим ім’ям «ID», одне з яких походить із таблиці tblCustomer, а інше – з таблиці tblOrder:
Щоб визначити псевдоніми таблиці в реченні FROM, використовуйте оператор AS:
Надалі ці псевдоніми таблиць можна використовувати в реченні SELECT, як показано нижче:
|
Згрупувати пари записів із двох джерел в один результат або вказати, чи потрібно включати записи з певної таблиці, коли для них немає відповідних записів у пов’язаній таблиці, можна за допомогою функції об’єднання. З’єднайте таблиці, щоб запит поєднував елементи таблиць і виключав елементи, для яких немає відповідних записів в іншій таблиці. |
Речення FROM може виглядати так:
|
Про використання з’єднань
Є два типи з’єднань: внутрішнє та зовнішнє. Внутрішні з’єднання частіше використовуються в запитах. Коли запускається запит із внутрішнім з’єднанням, результат показує лише ті елементи, що мають спільне значення в обох з’єднаних таблицях.
Зовнішні з’єднання вказують, чи потрібно включати дані за відсутності спільного значення. Зовнішні з’єднання направлені, тобто можна вказати, чи потрібно включати всі записи з першої таблиці, зазначеної у з’єднанні (так зване «ліве з’єднання»), або із другої таблиці у з’єднанні (так зване «праве з’єднання»). Зовнішнє з’єднання має такий синтаксис SQL:
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1 = table2.field2
Докладніше про використання з'єднань в запиті на об'єднання таблиць і запитів.
Настроювання речення WHERE
Речення WHERE містить умови, що допомагають обмежити кількість елементів, які повертаються в запиті. Нижче описано приклади умов запиту та як вони працюють.
Наприклад, базове речення WHERE можна настроїти, обмеживши результати запиту. Припустімо, вам потрібно знайти номер телефону клієнта, але ви пам’ятаєте лише його прізвище – Петренко. У цьому прикладі прізвища зберігаються в полі «Прізвище», отже синтаксис 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 має бути однакова кількість полів виводу, розташованих в одному порядку з однаковими або сумісними типами даних. Для запиту на об’єднання типи даних «Текст» і «Число» вважаються сумісними.
Докладні відомості про запити на об’єднання див. у статті про використання запиту на об’єднання для перегляду об’єднаного результату з кількох запитів.