Professional Documents
Culture Documents
1 1
1 1
1. Речення SELECT
2. Речення FROM
3. Речення WHERE
У цьому прикладі інструкція SQL означає таке: «Вибрати дані, які
зберігаються в полях "Адреса електронної пошти" й "Компанія" з таблиці
"Контакти", а саме записи, у яких поле "Місто" має значення "Сіетл"».
Розглянемо приклади окремих речень, щоб зрозуміти, як працює синтаксис
SQL.
Речення SELECT
SELECT [E-mail Address], Company
Це речення SELECT. Воно складається з оператора (SELECT), за яким
слідують два ідентифікатори ([Адреса електронної пошти] та "Компанія").
Якщо ідентифікатор містить пробіли або спеціальні символи (наприклад,
"адреса електронної пошти"), його потрібно взяти в квадратні дужки.
У реченні SELECT не потрібно вказувати таблиці з полями чи умови, яким
мають відповідати дані, що включаються в результат.
Речення SELECT завжди відображається перед реченням FROM в інструкції
SELECT.
Речення FROM
FROM Contacts
Це речення FROM. Воно складається з оператора (FROM), за яким слідує
ідентифікатор ("Контакти").
У реченні FROM не перелічуються поля для вибору.
Речення WHERE
WHERE City="Seattle"
Це речення WHERE. Воно складається з оператора (WHERE), за яким слідує
вираз (Місто="Сіетл").
На відміну від речень SELECT і FROM, речення WHERE необов’язково має
входити в інструкцію SELECT.
Вибір полів: речення SELECT
Оператор SELECT зазвичай починається з речення SELECT. Речення
SELECT використовується для визначення імен полів із даними, які потрібно
використати в запиті. Ви також можете використовувати вирази замість полів
або на додачу до них. Як поле можна використати навіть ще один оператор
SELECT – він називається підзапитом або вкладеним запитом.
Припустімо, вам потрібно дізнатися номери телефонів своїх клієнтів. Якщо
поле, у якому зберігаються номери телефонів клієнтів, називається
txtCustPhone, речення SELECT матиме такий вигляд:
SELECT [txtCustomerPhone]
Ви можете взяти ім’я у квадратні дужки. Якщо ім’я не містить пробілів і
спеціальних символів (наприклад, розділових знаків), квадратні дужки
необов’язкові. Якщо ім’я містить пробіли або спеціальні символи, необхідно
використовувати дужки.
Порада.: Ім’я, яке містить пробіли, легше читати, і воно може заощадити час
під час створення форм і звітів, але може бути так, що вам доведеться
вводити більше під час написання SQL-операторів. Слід враховувати це,
називаючи об’єкти в базі даних Access.
Якщо SQL-оператор має два або більше полів з однаковим іменем, необхідно
додати імена джерел даних усіх полів до поля імені в реченні SELECT. Для
джерела даних використовуйте те саме ім’я, яке використовується в реченні
FROM.
Вибір усіх полів
Щоб включити всі поля із джерела даних, перерахуйте всі поля окремо в
реченні SELECT або скористайтеся символом зірочки (*). Якщо
використовується зірочка, програма Access, виконуючи запит, визначає, які
поля містить джерело даних, і включає всі ці поля в запит. Таким чином
забезпечується постійне оновлення запиту, якщо до джерела даних
додаються нові поля.
Ви можете використовувати зірочку з одним або кількома джерелами даних в
SQL-операторі. Якщо використовується зірочка та є кілька джерел даних,
разом із зірочкою необхідно включити ім’я джерела даних, щоб програма
Access могла визначити, з яких джерел даних включати всі поля.
Наприклад, ви хочете вибрати всі поля з таблиці "Замовлення" та лише
адресу електронної пошти з таблиці "Контакти". Речення SELECT може мати
такий вигляд:
SELECT Orders.*, Contacts.[E-mail Address]
Слідкуйте за тим, коли використовується зірочка. Якщо до джерела даних
пізніше додаються нові поля, а ви їх не планували, результати запиту можуть
виявитися несподіваними.
Вибір унікальних значень
Якщо ви знаєте, що оператор вибере надлишкові дані, а вам потрібні лише
певні значення, ви можете використати в реченні SELECT ключове слово
DISTINCT. Припустімо, що кожен із ваших клієнтів представляє кілька
різних інтересів, але деякі з них використовують один номер телефону. Якщо
ви хочете, щоб кожен номер телефону відображався лише раз, речення
SELECT повинне мати такий вигляд:
SELECT DISTINCT [txtCustomerPhone]
Використання імен-замінників для полів і виразів: ключове слово AS
Ви можете змінити підпис будь-якого поля в поданні таблиці,
використовуючи ключове слово AS і псевдонім поля в реченні SELECT.
Псевдонім поля – це ім’я, яке ви призначаєте полю в запиті, щоб результати
було легше читати. Наприклад, якщо ви хочете вибрати дані з поля з іменем
txtCustPhone, а поле містить номери телефонів клієнтів, ви можете
полегшити читання результатів за допомогою псевдоніма поля в операторі
SELECT, як показано нижче:
SELECT [txtCustPhone] AS [Customer Phone]
Коли в реченні SELECT використовується вираз, псевдонім поля
обов’язковий.
Вибір за допомогою виразу
Іноді може знадобитися переглянути обчислення на основі даних або
отримати лише частину даних поля. Наприклад, ви хочете повернути рік
народження клієнтів на основі даних у полі BirthDate у базі даних. Речення
SELECT може мати такий вигляд:
SELECT DatePart("yyyy",[BirthDate]) AS [Birth Year]
Цей вираз складається з функції DatePart і двох аргументів: "yyyy"
(константа) і [BirthDate] (ідентифікатор).
Як поле можна використовувати будь-який припустимий вираз, якщо він
виводить одне значення, коли задано одне вхідне значення.
Визначення джерел даних
В операторі SELECT речення FROM визначає таблиці та запити з даними, які
використовуватимуться в реченні SELECT.
Припустімо, вам потрібно дізнатися номер телефону певного клієнта. Якщо
таблиця з полем, у якому зберігаються ці дані, називається tblCustomer,
речення FROM матиме такий вигляд:
FROM tblCustomer
Ви можете взяти ім’я у квадратні дужки. Якщо ім’я не містить пробілів і
спеціальних символів (наприклад, розділових знаків), квадратні дужки
необов’язкові. Якщо ім’я містить пробіли або спеціальні символи, необхідно
використовувати дужки.
Порада.: Ім’я, яке містить пробіли, легше читати, і воно може заощадити час
під час створення форм і звітів, але може бути так, що вам доведеться
вводити більше під час написання SQL-операторів. Слід враховувати це,
називаючи об’єкти в базі даних Access.
Використання імен-замінників для джерел даних
Ви можете використати інше ім’я для посилання на таблицю в операторі
SELECT, взявши псевдонім таблиці в реченні FROM. Псевдонім таблиці – це
ім’я, яке ви призначаєте джерелу даних у запиті, коли використовуєте вираз
як джерело даних або щоб полегшити ввід і читання SQL-оператора. Це може
бути особливо корисно, якщо ім’я джерела даних задовге або його складно
вводити, особливо коли є кілька полів з однаковим іменем із різних таблиць.
Наприклад, якщо вам потрібно вибрати дані з двох полів з однаковим іменем
ID, одне з яких походить із таблиці tblCustomer, а інше – з таблиці tblOrder,
речення SELECT може мати такий вигляд:
SELECT [tblCustomer].[ID], [tblOrder].[ID]
Використовуючи псевдоніми таблиці в реченні FROM, можна спростити ввід
запиту. Речення FROM із псевдонімами таблиці може мати такий вигляд:
FROM [tblCustomer] AS [C], [tblOrder] AS [O]
Надалі ці псевдоніми таблиць можна використовувати в реченні SELECT, як
показано нижче:
SELECT [C].[ID], [O].[ID]
Примітка.: Коли використовується псевдонім таблиці, ви можете посилатися
на таблицю в SQL-операторі за допомогою псевдоніма або повного імені
таблиці.
Об’єднання пов’язаних даних
Якщо вам потрібно поєднати пари записів із двох джерел даних в окремі
записи в результаті запиту, можна виконати об’єднання. Об’єднання – це
операція SQL, яка вказує, як два джерела даних пов’язано між собою та чи
потрібно включати дані з одного джерела, коли для них немає відповідних
даних в іншому джерелі.
Щоб поєднати відомості із двох джерел даних, виконайте операцію
об’єднання в спільному полі. Після зіставлення значень, що зберігаються в
цьому полі, дані із записів поєднуються в результатах.
Крім поєднання даних, за допомогою операції об’єднання також можна
вказати, чи потрібно включати записи з певної таблиці, коли для них немає
відповідних записів у пов’язаній таблиці.
Наприклад, ви хочете використати в запиті дані з двох таблиць: tblCustomer і
tblOrder. В обох таблицях є поле CustomerID, яке визначає клієнта. Кожен
запис у таблиці tblCustomer може мати один або кілька відповідних записів у
таблиці tblOrder, і відповідні значення можна визначити за значеннями в полі
CustomerID.
Якщо ви хочете об’єднати таблиці, щоб запит поєднував записи з таблиць, за
винятком записів із будь-якої таблиці, коли для них немає відповідних
записів в іншій таблиці, речення FROM може мати такий вигляд (розрив
рядка додано для зручності читання):
FROM [tblCustomer] INNER JOIN [tblOrder]
ON [tblCustomer].[CustomerID]=[tblOrder].[CustomerID]
У програмі Access операції об’єднання виконуються в реченні FROM
оператора SELECT. Є два типи об’єднань: внутрішні та зовнішні. Ці два типи
об’єднань описано в наведених нижче розділах.
Внутрішні об’єднання
Внутрішні об’єднання – це найпоширеніший тип об’єднання. Коли
виконується запит із внутрішнім об’єднанням, у результати запиту
включаються лише ті записи, спільне значення яких є в обох об’єднуваних
таблицях.
Внутрішнє об’єднання має такий синтаксис (розрив рядка додано для
зручності читання):
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field2
У наведеній нижче таблиці описано різні частини операції INNER JOIN.
Частина Опис
таблиця1, таблиця2 Імена таблиць, записи яких буде об’єднано.
поле1, поле2 Імена об’єднаних полів. Якщо поля не числові, вони повинні мати
однаковий тип даних, але не повинні мати однакові імена.
Частина Опис
compopr Будь-який реляційний оператор порівняння: "=", "<", ">", "<=", ">=" або
"<>"
Зовнішні об’єднання
Зовнішні об’єднання схожі на внутрішні, тому що вони визначають, як запит
буде поєднувати відомості з двох джерел. Різниця полягає в тому, що вони
також визначають, чи потрібно включати дані, у яких немає спільного
значення. Зовнішні об’єднання спрямовані: ви можете вказати, чи включати
всі записи з першого джерела даних, зазначеного в операції об’єднання (так
зване "ліве об’єднання"), або з другого джерела даних в операції об’єднання
(так зване "праве об’єднання").
Зовнішнє об’єднання має такий синтаксис:
FROM таблиця1 [ LEFT | RIGHT ] JOIN таблиця2
ON таблиця1.поле1 compopr таблиця2.поле2
У наведеній нижче таблиці описано різні частини операцій LEFT JOIN і
RIGHT JOIN.
Частина Опис
таблиця1, Імена таблиць, записи яких буде об’єднано.
таблиця2
поле1, поле Імена об’єднаних полів. Поля повинні мати однаковий тип даних, але не повинні
2 мати однакових імен.
compopr Будь-який реляційний оператор порівняння: "=", "<", ">", "<=", ">=" або "<>"