При вставці і видаленні записів прапорці всіх полів повинні бути порожніми

Візуальне конструювання запитів

Для зручного конструювання запитів можна використовувати візуальний конструктор, викликуваний командою New/QBE Queryменю програми Database Desktop. При цьому відкривається вікно Select File,де вказується ім'я головного файлу таблиці, на підставі даних якої будується запит. Після вибору файлу і натискання кнопки Openвідкривається вікно візуального конструктора.

У цьому вікні показуються імена таблиці і всіх її полів. Під ім'ям кожного поля знаходиться прапорець і текстове поле (ліворуч від прапорця для імені таблиці і праворуч — для імені поля).

За допомогою візуального конструктору можна:

v створювати і змінювати запит за зразком;

v виконувати запит за зразком;

v зберігати запит за зразком як SQL-запит.

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

o порожній рядок — відбор і редагування записів таблиці;

o insert — вставка записів у таблицю;

o delete — видалення записів з таблиці;

o set — порівняння записів у таблицях.

Для виконання запиту потрібно виконати команду Query/Run Queryменю програми Database Desktop чи натиснути відповідну кнопкупанелі інструментів. Перед виконанням запиту відбувається перевірка його правильності.

Для одержання тексту запиту, що відповідає візуальному запиту, потрібно виконати команду Query/Show SQLчи натиснути на панелі інструментів кнопку з буквами SQL. При відсутності помилок у конструкції запиту автоматично відкривається вікно SQL Editor ,у якому міститься текст запиту мовою SQL. При наявності помилок вікно Редактора SQL-запиту не з'являється, а видається повідомлення про помилку.

Запит можна зберігати (Save) на диску під своїм чи під іншим ім'ям (Save as). Можна також відкрити раніше збережений запит (Open).Файл запиту має розширення QBE. (У дужках зазначені команди пункту Fileпрограми Database Desktop.)

 

Відбор записів з таблиці

При відборі записів з таблиці за допомогою правої кнопки миші на прапорцях полів викликається контекстне меню , у якому вибирається мітка для прапорця:

v порожньо — поле не включається в результат запиту;

v галочка зі знаком + — поле включається в результат запиту;

v галочка — поле включається в результат запиту із сортуванням записів по зростанню значень цього поля;

v галочка з чорною стрілкою — поле включається в результат запиту із сортуванням записів по убуванню значень цього поля;

v галочка з буквою G — поле включається в результат запиту і використовується для групування записів.

Крім того, праворуч від прапорця для кожного поля таблиці можна вручну ввести умову відбору записів. Поле, для якого допускається введення умови запиту, позначається текстовим курсором. Цей курсор відображається чорним прямокутником і переключається мишею або клавішами керування курсором. При введенні (редагуванні) умови відбору чорний прямокутник змінюється миготливою вертикальною лінією.

{При виконанні запиту, показаного на мал. 22.14, з таблиці Personnel відбираються записи, для яких значення окладу (поле p_salary) більше або дорівнює 3500. Крім поля окладу, у результат запиту включаються поля імені (Р Name) І ПОСАДИ (Р Position).

Personnel.db P_Code vP_Name vP_Position P_Birthday P_Salary >=3500 P_Note

Рис. 22.14.Відбор записів за розміром окладу

У наведеному прикладі поле P_Salary використовується для відбору записів і одночасно включається в результат запиту.}

Треба запам’ятати що у загальному випадку включення поля, для якого задана умова відбору записів, у результат запиту не обов'язково. Таким чином, запис можна відбирати на підставі одних полів, а в результат запиту включати інші.

{ Відбор записів по полю, що не входить у результат запиту

При виконанні запиту, показаного на мал. 22.15, у набір даних, як i в попередньому прикладі, відбираються записи, для яких значення поля P__Salarу; більше або дорівнює 3500. Але в результат запиту включається тільки поле Name. Умова записується так - напроти поля SALARY набираємо >=3500}

 

Умова відбору може бути більш складна, чим просте порівняння, і містити операції логічного множення (and) і додавання (or).

Для об'єднання окремих умов за допомогою операції логічного множення потрібно перелічити ці умови в одному рядку через кому. Наприклад, якщо потрібно відібрати записи, для яких значення поля Р_Salary знаходиться в інтервалі 3500 .. 5000, умову можна записати таким чином SALARY >=3500,<=5000.

Для з'єднання окремих умов операцією логічного додавання потрібно перелічити ці умови в різних рядках. Так, при виконанні запиту, показаного на мал. 22.17, у набір потраплять записи, для яких поле Р_Position містить значення Водій чи Секретар. У результат запиту не включаються поля коду і примітки. Personnel.db P_Code P_Name P_Position P_Birthday P_Salary P_note

V V =Водій V V

V V =Секретар V V

Додавання до запиту нового рядка виконується перекладом текстового курсору вниз при перебуванні його на останньому рядку (за допомогою клавіш керування курсором). При цьому курсор може знаходитися в будь-якому полі запиту.

Зауваження

Оцінки для кожного поля у всіх рядках запиту повинні бути однаковими. Наприклад, якщо в приведеному на мал. 22.17 запиті в другому рядку забрати оцінку для поля p_Birthday, то при спробі виконати запит буде видане повідомлення про помилку.

Видалення рядка запиту виконується одночасним натисканням клавіш <Ctrl> і <Delete>. Попередньо текстовий курсор повинний бути встановлений у будь-якім полі рядка, що видаляється.

При відборі записів по декількох полях умова відбору задається окремо для кожного поля. Умови зв'язуються операцією логічного множення — у такий спосіб у результат запиту попадають записи, для полів яких виконуються всі умови.

Наприклад, при виконанні наступного запиту, показаного на мал. 22.18, будуть відібрані записи, для яких значення поля p_Position дорівнює Водій, а значення поля p_saiary більше або дорівнює 3000. У результат запиту попадають поля p_Name,

P__Position И P_Salary.

Personnel.db P_Code P_Name P_Position P_Birthday P_Salary P_note

V V =Водій V V>=3000

Редагування записів

При редагуванні записів необхідно визначити:

· умови відбору записів;

· нові значення змінюваних полів.

Умови відбору записів формуються, як було розглянуто раніше. Для полів, що змінюються, варто задати нові значення, перед якими вказується ключове слово changeto.

Зауваження

При вставці і видаленні записів прапорці всіх полів повинні бути порожніми.

 

P_Code P_Name P_Position P_Birthday P_Salary P_Note

=Секретар changeto 4700

 

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