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

25 0 Новини високих технологій

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

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

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

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

Види команд залежать від того, для чого призначені запити і що за дії вони виконують. Основних типів операцій два:
  • на вибірку;
  • на дію.
  • Другий тип включає в себе команди, що виконують зміни в БД: вставка, заміна і видалення полів або рядків. Всі операції також поділяють на такі типи:
  • за зразком (QBE – Query by example);
  • SQL (Structured Query Language).
  • Перший вид використовує спеціальний "Конструктор запитів". Такий майстер створення команд є в СУБД Access. Він дозволяє створювати запити користувачів без спеціальних знань. SQL-запит формує програміст, використовуючи спеціальні інструкції.
    Для чого призначені запити? Мови запитів

    Мови

    Основною мовою практично у всіх СУБД SQL. Це гнучка система команд, що дозволяє отримати необхідну інформацію з таблиць, що відповідає зазначеним умов. З допомогою цієї мови можна робити вибірку, так і вносити зміни в об'єкти БД. Для обробки документів у форматі XML – розширюваному мовою розмітки – задіяні спеціальні мови запитів. Це XQuery і XPath, останній служить для запитів до елементів документів.

    Запити на вибірку

    Найбільш затребувана операція в БД – це отримання даних з таблиць, для чого призначені запити на вибірку. Ці команди дозволяють подивитися потрібні дані з БД згідно введеним умовам. Для цього користувач "Конструктора запитів" або програміст вказує список полів (стовпців), які він хоче отримати, присвоює їм найменування, розставляє в потрібному порядку.


    Команда може бути безумовною або з заданими параметрами. У першому випадку користувачеві буде повернутий масив даних, що складається з усіх рядків таблиці. У другому – тільки ті рядки, які відповідають введеному вимогу. Таким чином можна задавати обмеження – встановлювати фільтр на необхідні дані. Отриману інформацію можна також сортувати по одному або декільком полям, об'єднати рядки по якомусь ознакою, зробити підрахунки з використанням функцій. Це агрегатні функції, підраховують кількість, суму, середнє арифметичне значення полів та інші підсумки. У вибірках об'єднують кілька таблиць, пов'язуючи їх між собою по необхідному ознакою і отримуючи підсумкову таблицю, що містить інформацію з кількох джерел. Спробуємо зробити вибірку в Access, для чого призначені запити в "Конструкторі". Створимо в нашій базі даних таблицю "Студенти".

    Код



    Ім'я студента



    Прізвище студента



    Дата народження



    Факультет



    Курс



    1



    Іван



    Іванов



    16051999



    Технологічний



    3



    2



    Сергій



    Козлов



    19011999



    Економічний



    3



    3



    Валерій



    Пяткіна



    22122000



    Економічний



    2



    4



    Тимофій



    Трещоткин



    01052001



    Юридичний



    1

    Відкриваємо вкладку "Створення" і вибираємо пункт «Конструктор запитів». Додаємо таблиці "Студенти". Для вибору потрібних полів двічі клікаємо на них. Внизу вікна додаємо сортування, якщо вона необхідна, і додаткові умови відбору.
    Для чого призначені запити? Мови запитів
    Після натискання на кнопку «Виконати» вкладки «Конструктора» у вікні з'являються результати вибірки.
    Для чого призначені запити? Мови запитів
    Такі ж результати можна отримати з використанням SQL-запиту. Перехід в режим SQL відбувається по пункту контекстного меню. Наша операція тут виглядає так: SELECT Студенти.[Имя студента], Студенти.[Фамилия студента], Студенти.[Дата рождения]

    FROM Студенти

    ORDER BY Студенти.[Имя студента];

    Аналогічно можна створити і виконати команди на вибірку з декількох таблиць, з параметрами і результатами.

    Запити на додавання

    Цей тип операцій використовується для вставки нових рядків в існуючу таблицю БД. Можна додавати конкретні значення полів, а можна отримувати інформацію з таблиць і додавати її в іншу. Як витягати дані, ми вже знаємо, давайте подивимося, як додати рядки.

    <script async="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

    <script> (adsbygoogle = window.adsbygoogle ||[]).push({});

    Створимо ще одну таблицю «Нові студенти» і додамо в неї 2 записи:

    Код Ім'я Прізвище Дата народження
    1 Юрій Семенов 11122002
    2 Олексій Торопов 13082002

    А тепер вставимо ці дані в таблиці «Студенти» за допомогою "Конструктора запитів". Для цього на вкладці "Конструктор" виберемо пункт «Додати», а у вікні вікні вкажемо таблиці «Студенти», в яку будуть вставлятися дані. У вікні запиту додамо таблицю «Нові студенти», з якої будемо брати запису. Виберемо поля, інформація з яких буде додана в таблиці «Студенти»:

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

    І виконаємо запит. Таблиця стала виглядати так.

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

    В режимі мови запитів SQL на додавання приймає вигляд:

    INSERT INTO Студенти ([Имя студента],[Фамилия студента],[Дата рождения])

    SELECT[Новые Студенты].Ім'я,[Новые Студенты].Прізвище,[Новые Студенты].[Дата рождения]

    FROM[Новые Студенты];

    Запити на зміну

    Часто виникає необхідність внести зміни у вже існуючі записи таблиці, для чого призначені запити на зміну даних. За аналогією з попередніми операціями, ця може виконуватися як над всіма рядками, так і тільки над тими, що відповідають критеріям відбору.


    <script type="text/javascript">
    var blockSettings12 = {blockId:"R-A-116722-12",renderTo:"yandex_rtb_R-A-116722-12",horizontalAlign:!1async:!0};

    if(document.cookie.indexOf("abmatch=") >= 0){
    blockSettings12 = {blockId:"R-A-116722-12",renderTo:"yandex_rtb_R-A-116722-12",horizontalAlign:!1statId:7async:!0};
    }

    !function(a,b,c,d,e){a[c]=a[c]||[],a[c].push(function(){Ya.Context.AdvManager.render(blockSettings12)}),e=b.getElementsByTagName("script")[0],d=b.createElement("script"),d.type="text/javascript",d.src="//an.yandex.ru/system/context.js",d.async=!0e.parentNode.insertBefore(d,e)}(this,this.document,"yandexContextAsyncCallbacks");

    Зараз в таблиці «Студенти» є два записи з порожніми полями «Факультет» та «Курс» - нещодавно додані рядки. Давайте зробимо в них зміни і внесемо необхідні дані у ці рядки.

    Студент Семенов вступив на перший курс юридичного факультету. У Конструкторі запитів вибираємо тип команд «Оновлення» і додаємо потрібні дані і умова зміни записів. Нам потрібно змінити два поля, тому вносимо дані для зміни у двох стовпцях параметрів запиту – поле «Факультет» таблиці «Студенти» має прийняти значення «Юридичний», поле «Курс» цієї таблиці – значення «1». У третьому стовпці вносимо умову, за яким відбирати дані для зміни. Прізвище студента таблиці «Студенти» повинна бути «Семенов».

    <script async="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">

    <script> (adsbygoogle = window.adsbygoogle ||[]).push({});
    Для чого призначені запити? Мови запитів

    У режимі SQL бачимо:

    UPDATE Студенти SET Студенти.Факультет = "Юридичний", Студенти.Курс = 1

    WHERE Студенти.[Фамилия студента]="Семенов";

    Виконуємо операцію і отримуємо результат.

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

    Запити на видалення

    І нарешті бувають ситуації, коли частина записів виявляються непотрібними і їх слід видалити, для чого в СУБД призначені запити на видалення рядків. Наведемо приклад такої команди, видаливши нещодавно додану запис з таблиці «Студенти» - учня Олексія Торопова.

    У "Конструктора запитів" вибираємо тип «Видалення» і формуємо команду з допомогою умов:

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

    У режимі SQL бачимо текст:

    DELETE

    FROM Студенти

    WHERE Студенти.[Фамилия студента]="Торопов"; Виконавши команду, отримуємо результат у таблиці:

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