You are on page 1of 9

РН 5.

Здійснювати супроводження інформації


ПК 1. Здатність застосовувати у роботі з оброблення інформації систему
управління базами даних для створення, збереження та управління даними
для відповідної системи
Тема 1. Системи управління базами даних для створення, збереження та
управління даними для відповідної системи
Тема уроку 1. Призначення та склад мови SQL
Мета: оволодіти знаннями про призначення та склад мови SQL, розвити
навики роботи з компонентами мови SQL, виховувати засобами уроку
впевненість у своїх силах.
Тип уроку: засвоєння нових знань.

SQL – це мова програмування для роботи з наборами фактів і зв’язками між


ними. У програмах керування реляційними базами даних, як-от Microsoft
Office Access, мова SQL використовується для роботи з даними. На відміну
від багатьох мов програмування, мова SQL дуже проста. Подібно до інших
мов програмування, SQL – це міжнародний стандарт, визнаний такими
організаціями зі стандартизації, як ISO й ANSI.
Мовою SQL описуються набори даних, які можуть допомогти відповісти на
запитання. Використовуючи SQL, потрібно застосовувати правильний
синтаксис. Синтаксис – це набір правил, які забезпечують правильне
поєднання елементів мови. Синтаксис SQL базується на синтаксисі
англійської мови та має багато спільних елементів із синтаксисом Visual
Basic for Applications (VBA).
Наприклад, ось як може виглядати проста інструкція SQL для отримання
списку прізвищ з іменем Mary:
SELECT Last_Name
FROM Contacts
WHERE First_Name = 'Mary';
SQL використовується не лише для маніпулювання даними, але й для
створення та змінення структури об'єктів бази даних, наприклад таблиць.
Частина SQL, яка використовується для створення та зміни об'єктів бази
даних, називається мовою визначення даних (DDL).
Інструкції SELECT
Щоб описати набір даних за допомогою SQL, ви пишете оператор SELECT.
Оператор SELECT містить повний опис набору даних, який потрібно
отримати з бази даних. Ця дія включає такі дії:
 таблиці, які містять дані;
 зв’язки між даними з різних джерел;
 поля або обчислення, на основі яких створюються дані;
 умови, яким мають відповідати дані, що включаються в результат;
 доцільність і спосіб сортування результатів.
Речення SQL
Інструкція SQL складається з речень. Кожне речення в інструкції SQL
виконує свою функцію. Деякі речення в інструкції SELECT є обов’язковими.
У таблиці нижче наведено найпоширеніші речення SQL.
Речення Функції Обов’язкове
SQL
SELECT Перелічує поля, які містять потрібні дані. Так
FROM Перелічує таблиці, у яких містяться поля, зазначені в реченні Так
SELECT.
WHERE Визначає умови для поля, яким мають відповідати всі записи, щоб Ні
бути включеними до результатів.
ORDER Визначає спосіб сортування результатів. Ні
BY
GROUP В інструкції SQL, яка містить агрегатні функції, перелічує поля, не Лише за
BY зведені в реченні SELECT. наявності таких
полів
HAVIN В інструкції SQL, яка містить агрегатні функції, визначає умови, Ні
G які застосовуються до полів, зведених в інструкції SELECT.
Терміни SQL
Кожне речення SQL складається з термінів, які можна порівняти з частинами
мови. У таблиці нижче наведено типи термінів SQL.
Термін SQL Відповідна Визначення Приклад
частина мови
ідентифікато іменник Ім’я, яке використовується для Клієнти.[Номер
р визначення об’єкта бази даних, телефону]
наприклад імені поля.
оператор дієслово або Ключове слово, яке позначає або AS
прислівник змінює дію.
константа іменник Значення, яке не змінюється, 42
наприклад число або NULL-
значення.
вираз прикметник Комбінація ідентифікаторів, >= Продукти.[Ціна за
операторів, констант і функцій, яка одиницю]
обчислюється до одного значення.
Основні речення SQL: SELECT, FROM і WHERE
Загальний формат інструкції SQL:
SELECT field_1
FROM table_1
WHERE criterion_1
;
 Програма Access ігнорує розриви рядків в інструкції SQL. Проте радимо
починати кожне речення з нового рядка, щоб інструкції SQL могли
читати не лише ви, а й інші користувачі.
 Кожна інструкція SELECT закінчується крапкою з комою (;). Вона може
стояти як у кінці останнього речення, так і окремо в рядку в кінці
інструкції SQL.
Приклад у програмі Access
Ось як може виглядати інструкція SQL у простому вибірковому запиті в
Access:

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 Будь-який реляційний оператор порівняння: "=", "<", ">", "<=", ">=" або "<>"

Обмеження результатів за допомогою умов


Якщо потрібно використовувати дані для обмеження кількості записів, які
повертаються в запиті, можна скористатися умови. Критерій запиту схожий
на формулу – це рядок, який може складатися з посилань на поля, операторів
і констант. Умови запиту – це тип вираз.
У таблиці нижче наведено кілька зразків умов і пояснено, як вони працюють.
Умови Опис
>25 і <50 Ця умова застосовується до поля типу "Числовий", наприклад "Ціна" або
"Кількість_наявних_одиниць". Він включає тільки ті записи, у яких поле
"Ціна" або "Кількість одиниць у наявності" містить значення, більше за 25
і менше за 50.
DateDiff ("рррр", Ця умова застосовується до поля типу "Дата й час", наприклад
[Дата_народження], "Дата_народження". До результатів запиту увійдуть лише записи, у яких
Date()) > 30 кількість років між датою народження особи та сьогоднішньою датою
більша за 30.
Is Null Цю умову можна застосувати до поля будь-якого типу, щоб відобразити
записи, у яких значення поля є пустим (Null).
Як показано в попередній таблиці, умови можуть виглядати по-різному
залежно від типу даних у полі, до якого застосовуються, і особливих вимог.
Деякі умови прості та містять основні оператори й константи. Інші умови
складні та включають функції, спеціальні оператори й посилання на поля.
Синтаксис речення WHERE
В операторі SELECT у реченні WHERE використовуються умови запиту.
Речення WHERE має такий базовий синтаксис:
WHERE field = criterion
Припустімо, наприклад, що вам потрібен номер телефону клієнта, але ви
пам’ятайте лише його прізвище – Багрій. Замість того, щоб переглядати всі
телефонні номери в базі даних, можна скористатися реченням WHERE, щоб
обмежити результати та спростити пошук потрібного номера телефону. Якщо
прізвища зберігаються в полі з іменем "Прізвище", речення WHERE матиме
такий вигляд:
WHERE [LastName]='Bagel'
Не потрібно встановлювати умови в реченні WHERE на основі рівності
значень. Ви можете використовувати інші оператори порівняння, як-от
більше (>) або менше (<). Наприклад, WHERE [Ціна] > 100.
Об’єднання джерел даних за допомогою речення WHERE
Інколи можна поєднувати джерела даних на основі полів, які мають
відповідні дані, але мають різні типи даних. Наприклад, поле в одній таблиці
може містити тип даних "число", і потрібно порівняти це поле з полем в
іншій таблиці з типом даних "текст".
Не можна створити об’єднання між полями з різними типами даних. Щоб
об’єднати дані з двох джерел даних на основі значень у полях із різними
типами даних, можна створити речення WHERE, яке використовуватиме
одне поле як умову для іншого, за допомогою ключового слова LIKE.
Припустімо, наприклад, що потрібно використати дані з таблиці1 і таблиці2,
але лише тоді, коли дані в полі1 (текстове поле в таблиці1) відповідають
даним у полі2 (числове поле в таблиці2). Речення WHERE матиме приблизно
такий вигляд:
WHERE field1 LIKE field2

You might also like