§ 5. Фарміраванне запытаў на выбарку даных

 

З дапамогай запытаў у базах даных выконваюць такія аперацыі, як адбор даных, іх сартаванне і фільтраванне. Запыт можна выкарыстоўваць для выканання разлікаў, аб’яднання даных з розных табліц, а таксама для дабаўлення, змянення ці выдалення даных у табліцы. Гэта вельмі гібкі інструмент, і існуе шмат тыпаў запытаў, а выбар тыпу вызначаецца прызначэннем запыту.

Запыт — аб’ект БД, які выкарыстоўваецца для рэалізацыі эфектыўнага пошуку і апрацоўкі даных.

Крыніцай даных для запытаў могуць быць не толькі адна ці некалькі табліц, але іншыя запыты. Запыты не захоўваюць даныя, а толькі адлюстроўваюць даныя крыніц. На аснове запытаў могуць быць пабудаваны формы і справаздачы.

Самы распаўсюджаны від запытаў — запыт на выбарку. Ён прызначаны для адбору даных з крыніцы ў адпаведнасці з некаторай умовай. Умова запыту — гэта выраз, які СКБД параўноўвае са значэннямі ў палях запыту, каб вызначыць, ці трэба ўключаць у вынік запісы, якія змяшчаюць тое ці іншае значэнне.

Запыт на выбарку дазваляе:

1. Праглядаць значэнні толькі з палёў, якія вас цікавяць.
2. Праглядаць запісы, якія адказваюць вызначаным вамі ўмовам.
3. Выкарыстоўваць выразы ў якасці палёў.

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

Асноўныя рэжымы работы з запытамі ў Access:

1. Режим таблицы. Адлюстроўвае інфармацыю запыту на выбарку ў рэжыме табліцы.

2. Конструктор. У гэтым рэжыме вызначаецца структура запыту і ўмовы выбару даных (гл. Дадатак да главы 1).

(Разгледзьце прыклад 5.1.)

Стварыць запыт можна з дапамогай Мастера запросов або ў Конструкторе (прыклад 5.2).

Майстар запытаў дазваляе аўтаматычна ствараць запыты на выбарку. Аднак пры выкарыстанні майстра не заўсёды можна кантраляваць працэс стварэння запыту, але такім спосабам запыт ствараецца хутчэй. Неабходна проста выканаць паслядоўнасць дзеянняў, прапанаваных майстрам на кожным этапе (прыклад 5.3).

Асноўныя этапы стварэння запыту на выбарку:

1. Выбар інструмента стварэння запыту.
2. Вызначэнне віду запыту.
3. Выбар крыніцы (крыніц) даных.
4. Дабаўленне з крыніцы (крыніц) даных палёў, якія павінен змяшчаць запыт.
5. Вызначэнне ўмоў, якія фарміруюць набор запісаў у запыце.
6. Дабаўленне групоўкі, сартавання і вылічэнняў (можа адсутнічаць).

Дзеянне простых запытаў на выбарку абмяжоўваецца адборам даных па некаторых умовах без іх апрацоўкі.

Прыклады запісу ўмоў у запытах:

Умова

Дзеянне ў запыце

Палі з лікавым тыпам даных

>0 And <8

Выбіраюцца запісы, у якіх значэнне ў гэтым полі большае за 0 і меншае за 8.

Not 0

Выбіраюцца запісы, у якіх значэнне ў гэтым полі не роўнае 0.

Палі з тэкставым тыпам даных

                             "Орша"

Калі значэнне ў полі запісу роўна Орша, то запіс уключаецца ў вынік запыту.

"*к"

У вынік запыту ўключаюцца запісы, у якіх значэнне адпаведнага поля заканчваецца на літару к. Пасля выканання запыту ўмова будзе дапоўнена аператарам Like, які дазваляе выкарыстоўваць сімвалы шаблону.

Правілы запісу ўмоў для поля з тыпам даных Дата и время такія ж, як для поля з лікавым тыпам даных. Пасля выканання запыту ў гэтым выпадку ва ўмову будуць дабаўлены знакі #.

Калі неабходна знайсці некалькі значэнняў палёў, можна выкарыстоўваць аператар In. Гэты аператар дазваляе выканаць праверку на роўнасць любому значэнню са спісу, які задаецца ў круглых дужках.

Калі патрабуецца выкарыстанне некалькіх умоў для розных палёў, неабходна ўлічваць, што паміж умовамі, запісанымі ў адным радку, выконваецца лагічная аперацыя And, а паміж умовамі, запісанымі ў розных радках, выконваецца лагічная аперацыя Or.

У рэжыме канструктара працэс стварэння запыту знаходзіцца пад вашым кантролем, аднак тут ёсць верагоднасць дапусціць памылку і неабходна больш часу, чым у майстры (прыклад 5.4).

Пасля стварэння запыту на выбарку яго неабходна запусціць, каб паглядзець вынікі, г. зн. адкрыць у рэжыме табліцы. Захаваўшы запыт, яго можна выкарыстоўваць у якасці крыніцы даных для формы, справаздачы ці іншага запыту.

Усе запыты, якія разгледжаны ў прыкладах 5.3 и 5.4, змяшчаюць пэўныя значэнні назваў, імёнаў, часу і г. д. Калі патрабуецца паўтарыць такі запыт з іншымі значэннямі ва ўмовах адбору, яго трэба будзе адкрыць у канструктары, змяніць умову і выканаць. Каб не рабіць шматразова гэтыя аперацыі, можна стварыць запыт з параметрамі. Пры выкананні такога запыту выдаецца дыялогавае акно Введите значение параметра, у якім карыстальнік можа ўвесці пэўнае значэнне, а затым атрымаць патрэбны вынік. Параметр запыту вызначаецца ў радку Условие отбора канструктара для слупка, які змяшчае значэнні, што запытваюцца. Параметрам з’яўляецца слова ці фраза, узятыя ў квадратныя дужкі. Параметр будзе выдавацца ў выглядзе запрашэння ў дыялогавым акне пры выкананні запыту (прыклад 5.5).

У запытах гэтак жа, як і ў справаздачах, можна ствараць палі, якія вылічваюцца. Для рашэння шэрага пытанняў работы з данымі выкарыстоўваецца запыт выніковых значэнняў. Такі запыт уяўляе сабой запыт на выбарку, які дазваляе групаваць даныя і выконваць вылічэнні.

У запыце выніковых значэнняў у полі, якое вылічваецца, выкарыстоўваюць статыстычныя функцыі. Задаць статыстычную функцыю для вылічэння выніковых значэнняў па кожным з палёў запыту можна шляхам выбару яе са спіса, які раскрыецца, — ён з’яўляецца пасля ўстаноўкі курсора ў радку Групповая операция (прыклад 5.6).

Акрамя запытаў на выбарку, часта ўжываюцца запыты на дзеянне. З дапамогай такіх запытаў можна абнаўляць значэнні палёў запісаў, дабаўляць новыя ці выдаляць ужо існыя запісы. У СКБД Access такія запыты можна стварыць у рэжыме канструктара, выкарыстаўшы інструменты групы Тип запроса:

Прыклад 5.1. Рэжымы работы з запытамі.

Рэжым SQL дазваляе ствараць і праглядаць запыты з дапамогай інструкцый мовы SQL.

SQL (англ. structured query language — мова структураваных запытаў). Выкарыстоўваецца для стварэння, рэдагавання і кіравання данымі ў рэляцыйнай базе даных.

Прыклад 5.2. Група інструментаў Запросы ўкладкі Создание.

Прыклад 5.3. Стварэнне запыту на выбарку з дапамогай Мастера запросов.

1. Выбраць інструмент .

2. Выбраць від запыту.

3. Выбраць крыніцу даных.

4. Задаць поле, якое змяшчае  значэнне, што паўтараецца.

5. Выбраць палі для адлюстравання разам са значэннямі, якія паўтараюцца.

6. Праглядзець і/ці захаваць запыт.

Прыклад 5.4. Стварэнне простых запытаў на выбарку з дапамогай Конструктора запросов.

1. Выбраць інструмент.

2. Выбраць крыніцу даных.

3. Дабавіць палі табліцы, якія будзе змяшчаць запыт. Для гэтага выканаць двайную пстрычку па кожнай з назваў палёў у макеце табліцы.

4. Запісаць умову фарміравання набору запісаў у запыце.

4.1. Выбар па полі з тэкставым тыпам даных.

Вынік:

      

Вынік:

4.2. Выбар па полі з лікавым тыпам даных.

Вынік:

4.3. Выкарыстанне састаўной умовы.

Вынік:

      

Вынік:

5. Захаваць запыты.

Прыклад 5.5. Стварэнне запыту з параметрамі.

1. Адкрыць адзін з запытаў, створаных у прыкладзе 5.4 у канструктары.

2. Змяніць умовы адбору на:

3. Захаваць з новым імем і адкрыць у рэжыме табліцы.

4. У дыялогавым акне набраць адну з назваў кінатэатра.

5. Праглядзець запыт.

Прыклад 5.6. Стварэнне выніковага запыту.

1. Стварыць выніковы запыт, які  вызначае, колькі хлопчыкаў і колькі дзяўчынак наведваюць факультатыў па матэматыцы. Крыніца даных — табліца «Навучэнцы».

2. Стварыць запыт з дапамогай канструктара (дабавіць у запыт толькі поле «Пол»).

3. Згрупаваць даныя па полі «Пол» (націснуць кнопку   у групе Показать или скрыть).

4. Дабавіць поле, якое вылічваецца (у радку новага поля Групповая операция ў спісе выбраць функцыю Count).

5. Захаваць і прагледзець запыт.