Бази даних займають все більше місця в нашому житті. Їх використовують в компаніях і банках, магазинах і на складах. Стикаючись з ними в повсякденному житті, багато хто хоче навчитися управління базами. Тому в статті ми познайомимо читача з поняттям запитів.
Що таке запити
Запити в базі даних – це спеціальні команди, за допомогою яких змінюють дані в таблицях і отримують з них потрібну інформацію. Ці команди можуть застосовуватися як до форм, так і до інших об’єктів БД – індексами, триггерам, уявлень, а також до БД в цілому. При цьому СУБД (системи управління базами даних) дозволяють робити зміни в таблиці цілком, так і в окремих записах і групах рядків.
Які бувають запити
Види команд залежать від того, для чого призначені запити і що за дії вони виконують. Основних типів операцій два:
- на вибірку;
- на дію.
Другий тип включає в себе команди, що виконують зміни в БД: вставка, заміна і видалення полів або рядків. Всі операції також поділяють на такі типи:
- за зразком (QBE – Query by example);
- SQL (Structured Query Language).
Перший вид використовує спеціальний “Конструктор запитів”. Такий майстер створення команд є в СУБД Access. Він дозволяє створювати запити користувачів без спеціальних знань.
SQL-запит формує програміст, використовуючи спеціальні інструкції.
Мови
Основною мовою практично у всіх СУБД SQL. Це гнучка система команд, що дозволяє отримати необхідну інформацію з таблиць, що відповідає зазначеним умовам. З допомогою цієї мови можна робити вибірку, так і вносити зміни в об’єкти БД.
Для обробки документів у форматі XML – розширюваному мовою розмітки – задіяні спеціальні мови запитів. Це XQuery і XPath, останній служить для запитів до елементів документів.
Запити на вибірку
Найбільш затребувана операція в БД – це отримання даних з таблиць, для чого призначені запити на вибірку. Ці команди дозволяють подивитися потрібні дані з БД згідно введеним умовам. Для цього користувач “Конструктора запитів” або програміст вказує список полів (стовпців), які він хоче отримати, присвоює їм найменування, розставляє в потрібному порядку.
Команда може бути безумовною або з заданими параметрами. У першому випадку користувачеві буде повернутий масив даних, що складається з усіх рядків таблиці. У другому – тільки ті рядки, які відповідають введеному вимогу. Таким чином можна задавати обмеження – встановлювати фільтр на необхідні дані.
Отриману інформацію можна також сортувати по одному або декільком полям, об’єднати рядки по якомусь ознакою, зробити підрахунки з використанням функцій. Це агрегатні функції, підраховують кількість, суму, середнє арифметичне значення полів та інші підсумки.
У вибірках об’єднують кілька таблиць, пов’язуючи їх між собою по необхідному ознакою і отримуючи підсумкову таблицю, що містить інформацію з кількох джерел.
Спробуємо зробити вибірку в Access, для чого призначені запити в “Конструкторі”. Створимо в нашій базі даних таблицю “Студенти”.
Код | Ім’я студента | Прізвище студента | Дата народження | Факультет | Курс |
1 | Іван | Іванов | 16.05.1999 | Технологічний | 3 |
2 | Сергій | Козлов | 19.01.1999 | Економічний | 3 |
3 | Валерій | Пяткіна | 22.12.2000 | Економічний | 2 |
4 | Тимофій | Трещоткин | 01.05.2001 | Юридичний | 1 |
Відкриваємо вкладку “Створення” і вибираємо пункт «Конструктор запитів». Додаємо таблиці “Студенти”. Для вибору потрібних полів двічі клікаємо на них. Внизу вікна додаємо сортування, якщо вона необхідна, і додаткові умови відбору.
Після натискання на кнопку «Виконати» на вкладці «Конструктор» у вікні з’являються результати вибірки.
Такі ж результати можна отримати з використанням SQL-запиту. Перехід в режим SQL відбувається по пункту контекстного меню. Наша операція тут виглядає так:
SELECT Студенти.[Ім’я студента], Студенти.[Прізвище студента], Студенти.[Дата народження]
FROM Студенти
ORDER BY Студенти.[Ім’я студента];
Аналогічно можна створити і виконати команди на вибірку з декількох таблиць, з параметрами і результатами.
Запити на додавання
Цей тип операцій використовується для вставки нових рядків в існуючу таблицю БД. Можна додавати конкретні значення полів, а можна отримувати інформацію з таблиць і додавати її в іншу. Як витягати дані, ми вже знаємо, давайте подивимося, як додати рядки.
Створимо ще одну таблицю «Нові студенти» і додамо в неї 2 записи:
Код | Ім’я | Прізвище | Дата народження |
1 | Юрій | Семенов | 11.12.2002 |
2 | Олексій | Торопов | 13.08.2002 |
А тепер вставимо ці дані в таблиці «Студенти» за допомогою “Конструктора запитів”. Для цього на вкладці “Конструктор” виберемо пункт «Додати», а у вікні, вкажемо таблиці «Студенти», в яку будуть вставлятися дані. У вікні запиту додамо таблицю «Нові студенти», з якої будемо брати запису. Виберемо поля, інформація з яких буде додана в таблиці «Студенти»:
І виконаємо запит. Таблиця стала виглядати так.
В режимі мови запитів SQL на додавання приймає вигляд:
INSERT INTO Студенти ( [Ім’я студента], [Прізвище студента], [Дата народження] )
SELECT [Студенти].Ім’я, [Студенти].Прізвище, [Студенти].[Дата народження]
FROM [Студенти];
Запити на зміну
Часто виникає необхідність внести зміни у вже існуючі записи таблиці, для чого призначені запити на зміну даних. За аналогією з попередніми операціями, ця може виконуватися як над всіма рядками, так і тільки над тими, що відповідають критеріям відбору.
Зараз в таблиці «Студенти» є два записи з порожніми полями «Факультет» та «Курс» – нещодавно додані рядки. Давайте зробимо в них зміни і внесемо необхідні дані у ці рядки.
Студент Семенов вступив на перший курс юридичного факультету. У Конструкторі запитів вибираємо тип команд «Оновлення» і додаємо потрібні дані і умова зміни записів. Нам потрібно змінити два поля, тому вносимо дані для зміни у двох стовпцях параметрів запиту – поле «Факультет» таблиці «Студенти» має прийняти значення «Юридичний», поле «Курс» цієї таблиці – значення «1». У третьому стовпці вносимо умову, за яким відбирати дані для зміни. Прізвище студента таблиці «Студенти» повинна бути «Семенов».
У режимі SQL бачимо:
UPDATE Студенти SET Студенти.Факультет = “Юридичний”, Студенти.Курс = 1
WHERE Студенти.[Прізвище студента]=”Семенов”;
Виконуємо операцію і отримуємо результат.
Запити на видалення
І нарешті бувають ситуації, коли частина записів виявляються непотрібними і їх слід видалити, для чого в СУБД призначені запити на видалення рядків. Наведемо приклад такої команди, видаливши нещодавно додану запис з таблиці «Студенти» – учня Олексія Торопова.
У “Конструктора запитів” вибираємо тип «Видалення» і формуємо команду з допомогою умов:
У режимі SQL бачимо текст:
DELETE
FROM Студенти
WHERE Студенти.[Прізвище студента]=”Торопов”;
Виконавши команду, отримуємо результат у таблиці:
Таким чином, ми на практиці вивчили, для чого призначені запити в БД. Їх різноманітність більше і ширше застосування, ніж описано в цій статті. Якщо вас зацікавить тема баз даних, ви можете продовжити вивчення самостійно.