Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні роботи.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.97 Mб
Скачать

1. Основні теоретичні і довідкові відомості

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

Існує чотири типи запитів на зміну: на вилучення, на відновлення і додавання записів, а також на створення таблиці.

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

  2. Запит на відновлення записів вносить загальні зміни в групу записів однієї чи декількох таблиць. Наприклад, на 10 відсотків піднімаються ціни на всі молочні продукти або на 5 відсотків збільшується зарплата співробітників визначеної категорії. Запит на відновлення записів дозволяв змінювати дані в існуючих таблицях.

  3. Запит на додавання додає групу записів з однієї чи декількох таблиць у кінець однієї чи декількох таблиць. Запит на додавання також корисний при виконанні таких дій:

  • додавання полів на основі умов відбору;

  • додавання записів, якщо деякі поля однієї таблиці не існують в іншій. Запит на додавання додасть дані в поля, які збігаються і пропустить інші.

4) Запит на створення таблиці створює нову таблицю на основі усіх чи частини даних з однієї чи декількох таблиць. Запит на створення таблиці корисний для виконання таких дій:

  • створення таблиці для експорту в іншу базу даних Microsoft Access;

  • створення звітів, які містять дані декількох таблиць;

  • створення резервної копії таблиці;

  • створення архівної таблиці, яка містить старі записи;

- підвищення швидкодії форм і звітів, які базуються на багато табличних запитах або виразах SQL.

1.2. Запити

В Microsoft Access є три типи запитів, які не можуть бути створені в режимі конструктора запиту (бланка QВЕ). Для них необхідно ввести SQL- вираз:

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

  • запит до сервера;

- керуючий запит. Створює або змінює об'єкти бази даних, такі, як таблиці Microsoft Access.

Вирази SQL складаються з ключових слів, а також ідентифікаторів і виразів Microsoft Access. Найбільш важливі ключові слова в SQL:

select - перше слово усіх повідомлень SQL, за допомогою якого проводиться пошук даних в одній чи декількох таблицях у базі даних. За ключовим полем select записують імена всіх полів, що включаються у вибірку. Використовуючи знак * після select, можна автоматично включити в запит усі поля вихідної таблиці. Наведемо декілька варіантів використання функції select.

Перший варіант:

Select * from books

Другий варіант:

Select имя_поля1, имя_поля2, имя_поля3... имя_поляN

From имя_таблицы

[Where условие]

Третій варіант:

Select имя_поля1 As 'Псевдоним1', имя_поля2 As 'Псевдоним2'

from имя_таблицы

distinct — вилучає повторювані значення з поля в наборі записів, знайдених за допомогою SQL;

Select Distinct izd

From books

Такий запис виводить всі данні із стрічки izd, які не повторюються.

distinctrow – аналогічно до оператора distinct вилучає запис з вибірки тільки при дублюванні всього запису цілком (використовується в випадку, коли потрібно обробити декілька таблиць, якщо ж таблиця одна, то оператор ігнорується).;

from - вказує, яка таблиця (таблиці) містять потрібні нам поля;

join - позначає зв'язок між записами, які містяться в різних таблицях. Об'єднання (SQL) - операція об'єднання, що в SQL позначається як JOIN об'єднує дві таблиці в реляційній базі даних утворюючи нову тимчасову таблицю, яку інколи називають "об'єднаною таблицею". В SQL існують такі типи об'єднання: внутрішнє - INNER, зовнішнє - OUTER. Зовнішнє об'єднання поділяють на ліве зовнішнє - LEFT OUTER та праве зовнішнє - RIGHT OUTER. В деяких випадках таблиці можна об'єднувати з собою, таке об'єднання зветься самооб'єднанням. З математичної точки зору операція об'єднання є фундаментальною операцією реляційної алгебри. Внутрішнє об'єднання об'єднує записи двох таблиць (А та В) на основі заданого предикату об'єднання. При цьому обчислюється декартів добуток всіх записів таблиць. Таким чином всі записи таблиці А буде об'єднано з кожним з записів таблиці В, при цьому в результуючій таблиці залишаться лише ті записи, які задовольняють предикат об'єднання.

Приклад явного внутрішнього об'єднання:

SELECT *

FROM Працівник

INNER JOIN Відділ

ON Працівник.КодВідділу = Відділ.КодВідділу

Приклад неявного внутрішнього об'єднання:

SELECT *

FROM Працівник, Відділ

WHERE Працівник.КодВідділу = Відділ.КодВідділу.

where - позначає умови вибору, які повинні використовуватися при виборі записів для включення їх у вибірку;

union - поєднує записи таблиць у єдиний набір даних;

order by - позначає режим сортування для набору даних (ASC - вказує, що значення у вказаному стовпці повинні сортуватися по зростанню від менших значень до більших. DESC - вказує, що значення у вказаному стовпці повинні сортуватися по спаданню, від більших значень до менших);

group by — означає, що буде повернутий один запис для кожного окремого значення в зазначеному полі. Якщо group by включається в select, список вибору повинен включати функції avg, count, sum і ін. (AVG – повертає середнє значення групи значень. Функція COUNT(*) повертає кількість елементів в групі включаючи NULL і повторювані значення. Функція COUNT(ALL expression) оцінює expression для кожної стрічки в групі і повертає кількість значень, які не дорівнюють NULL. Функція COUNT(DISTINCT expression) оцінює expression для кожної стрічки в групі і повертає кількість унікальних значень, які не дорівнюють NULL. Для значень більших 231-1 функція COUNT формує повідомлення про помилку. Натомість потрібно використовувати COUNT_BIG. SUM – повертає суму всіх, або унікальних значень в виразі). Якщо задана операція групування GROUP BY, то фактично будується нова таблиця, полями якої є поля перераховані в конструкції GROUP BY, і виконані групові функції над полями вихідної таблиці. Так, після виконання операції групування в запиті:

select fio, max(money)

from fio

group by fio;

буде побудована таблиця з полями fio, max(money).

having – використовується для накладання умови на поле, яке вказується в умові групування.

Select агрегатна_функція, поле1, поле2,...полеN

From ім'я_таблиці

Where умова

Group by поле1, поле2,...полеN

Having {[умова_по_агрегатній_функції]або[умова_по_згрупованому_полю]}

Умова по згрупованому полю або по агрегатній функції вказати можна тільки в директиві Having.

Приклад. Вивести на екран середню кількість сторінок по кожній з тематик, при цьому показувати тільки тематики, в яких середня кількість сторінок більше 400.

Select avg(books.pages) as "Средняя сумма страниц", themes.name

from books,themes

where books.id_themes=themes.id

group by themes.name

having avg(books.pages)>400

like - дозволяє провадити пошук по шаблону. Шаблон являє собою стрічку, в якій використовуються службові символи. Загальний синтаксис:

Select ім'я_поля1, ім'я_поля2, ім'я_поля3

From ім'я_таблицы

Where ім'я_поля Like 'шаблон'

В шаблоні можна вказувати такі службові символи і комбінації символів:

% - заміняє будь-яку кількість довільних символів в стрічці.

_ - заміняє один символ.

[набір символів] – визначає, що на цьому місці може стояти один з перерахованих символів.

[перший символ-другий символ] – визначає, що на цьому місці може стояти один з символів у вказаному діапазоні.

[^набір символів] - визначає, що на цьому місці може стояти будь-який, крім перерахованих символів.

[^перший символ-другий символ] - визначає, що на цьому місці може стояти будь-який, крім символів з вказаного діапазону.

При введенні умов вибору записів можна використовувати знаки відношень, логічні операції and, or і not, оператори:between, in, like.

2. Порядок виконання роботи

Перейдіть на вкладку "Создание". Створіть запити в режимі "Конструктор ":

  1. На вибірку по таблицях "Постачальники", "Товари", "Продажі", в яку входять наступні поля: Код постачальника, Країна, Марка товару, Опис товару, Ціна, Кількість товару.

  2. На вибірку по таблиці "Продажі" найдорожчих товарів, в яку входять поля: Код замовлення і Ціна.

3) Запит з параметрами по таблицях "Товари" і "Постачальники". Параметром запиту є Країна. У даному запиті виведіть Марку товару, Ціну товару і Країну. Для створення запиту з параметром у рядку "Условие отбора" використовуються квадратні дужки [ ].

  1. Створіть запит по таблиці "Покупці", задайте умову відбору по полю Посада, виведіть список і адреси покупців, які займають будь-які посади, крім директора. Використовуйте оператори not або <>.

  2. Створіть запит по таблиці ''Продажі" вибору записів полів Марка товару, Ціна і Кількість за умовою неточного збігу записів за допомогою оператора like. Наприклад, виберіть чай або каву незалежно від марки.

  3. Створіть запит по таблиці "Товари " на вибірку Кода постачальника і середньої Ціни товару, що поставляється.

  1. Створіть запит по таблиці "Продажі" вибору записів полів Код замовлення, Вартість , Код оплати, Марка і Дата оплати. Вибір дати оплати здійснюється з використанням одного з параметрів функції DataPart: Day, Month, Year. При цьому створюється поле, яке обчислюється, наприклад, Dаy(Дата оплати), а потім записується умова відбору, наприклад >10. DataPart - функція повертає ціле число, яка являє собою вказану аргументом datepart частину заданої другим аргументом дати (date). Параметри datepart можуть набувати наступні значення і скорочення: Year — рік (yy, yyyy); Quarter — квартал (qq, q); Month — місяц (mm, m); Dayofyear — день року (dy, y); Day — день (dd, d); Week — тиждень ( wk, ww); Hour — година (hh); Minute — хвилина ( mi, n); Second — секунда (ss, s); Millisecond - мілісекунда (ms). Загальний синтаксис:

DATEPART(datepart , date)

  1. Створіть запит по таблиці "Продажі", за допомогою SQL-виразу, на вибірку Коду заказу з мінімальною Вартістю товару.

  2. За допомогою SQL-виразу створіть запит на об'єднання полів двох таблиць "Група_21" і "Група_22", які збігаються. На основі цього запиту створіть нову таблицю з іменем "Зведена група".

Примітка. Для виконання останнього запиту створіть таблиці "Група_21" і "Група_22" з полями Прізвище, Математика, Фізика, Економіка і заповніть їх даними.

Щоб створити запит у режимі конструктора, виконайте такі дії:

1) Виберіть вкладку "Создание" і натисніть на кнопку "Конструктор Запросов".

2) У вікні діалогу "Добавление таблицы" виберіть таблиці, які містять об'єкти з потрібними даними.

3) Виділіть імена об'єктів, які додаються в запит, і натисніть кнопку "Добавить ". Закрийте діалогове вікно.

  1. Додайте поля в запит шляхом переносу імен полів зі списку полів у бланк запиту за допомогою миші.

  2. Введіть у запит умови відбору, задайте порядок сортування, створіть обчислювальні поля, створіть підсумкові поля або змініть структуру запиту яким-небудь іншим способом.

  3. Імена запитів потрібно узгодити з викладачем.

3. Контрольні питання

1) Які види запитів можна виконати в режимі конструктора?

2) Як включити поле в бланк запиту?

3) Як встановлюються властивості полів?

4) Якою клавішею здійснюється перехід з однієї частини вікна запиту в іншу?

5) Як працюють оператори для введення умов вибору даних: between, in, like?

6) Призначення функцій Ассеss:DataPart, Day, Month, Year.

7) Для чого застосовуються "Групповые операции "?

8) Які функції Ассеss забезпечують групові операції?

9) Що таке обчислювальні поля? Які арифметичні операції з полями можна проводити?

Лабораторна робота № 5

СТВОРЕННЯ ФОРМ ЗА ДОПОМОГОЮ МАЙСТРА ФОРМ