Для чого призначені запити? Мови запитів

Бази даних займають все більше місця в нашому житті. Їх використовують в компаніях і банках, магазинах і на складах. Стикаючись з ними в повсякденному житті, багато хто хоче навчитися управління базами. Тому в статті ми познайомимо читача з поняттям запитів.

Що таке запити

Запити в базі даних – це спеціальні команди, за допомогою яких змінюють дані в таблицях і отримують з них потрібну інформацію. Ці команди можуть застосовуватися як до форм, так і до інших об’єктів БД – індексами, триггерам, уявлень, а також до БД в цілому. При цьому СУБД (системи управління базами даних) дозволяють робити зміни в таблиці цілком, так і в окремих записах і групах рядків.

Які бувають запити

Види команд залежать від того, для чого призначені запити і що за дії вони виконують. Основних типів операцій два:

  • на вибірку;
  • на дію.

Другий тип включає в себе команди, що виконують зміни в БД: вставка, заміна і видалення полів або рядків. Всі операції також поділяють на такі типи:

  • за зразком (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 Студенти.[Прізвище студента]=»Торопов»;

Виконавши команду, отримуємо результат у таблиці:

Таким чином, ми на практиці вивчили, для чого призначені запити в БД. Їх різноманітність більше і ширше застосування, ніж описано в цій статті. Якщо вас зацікавить тема баз даних, ви можете продовжити вивчення самостійно.