
- •0927 – "Видавничо-поліграфічна справа" для магістрантів
- •0927 – "Видавничо-поліграфічна справа" для магістрантів
- •1 Вивчення метод і в збору та накопичення даних
- •1.5 Контрольні питання:
- •1.6 Літературні джерела:
- •1 Вивчення метод і в збору та накопичення даних
- •2.5 Контрольні питання:
- •2.6 Літературні джерела:
- •2 Вивчення методів пошуку та опрацювання даних
- •Завдання1. Пригадати синтаксис оператора select для вибірки даних.
- •Завдання 3. Створити вибірку за заданим критерієм з таблиці, яка є результатом злиття двох інших таблиць autors та titles бази даних publications. Порядок виконання завдання 3:
- •Завдання 4. Об’єднати три початкові таблиці authors, titles та publishers в одну результативну таблицю і створити вибірку до неї відповідно до заданого критерію. Порядок виконання завдання 4:
- •2 Вивчення методів пошуку та опрацювання даних
- •Завдання 3. Створити запит з розрахунком всередині інструкції Select.
- •4.6 Літературні джерела:
- •3 Вивчення методів оформлення наукових результатів
- •Завдання 2. Вивчити процедуру конкатенації даних – об’єднання стовпців.
- •Завдання 4. Вирішити функціональну задачу на основі складного запиту.
- •Завдання 5. Вивчити формат команд угруповування даних
- •Завдання 6. Вивчити формат команд сортування даних
- •3 Вивчення методів оформлення наукових результатів
- •0927 – "Видавничо-поліграфічна справа" для магістрантів
2 Вивчення методів пошуку та опрацювання даних
ДЛЯ НАУКОВИХ ДОСЛІДЖЕНЬ ЗАСОБАМИ MYSQL / MS АСCESS
РОЗДІЛ 4 СТВОРЕННЯ ЗАПИТІВ ДО ТАБЛИЦЬ БАЗ ДАНИХ
З ОБЧИСЛЕННЯМ РЕЗУЛЬТАТІВ МОВОЮ SQL
4.1 Мета роботи
Засвоїти порядок створення запитів з групуванням даних, обчисленням підмумків, аналізом, зміненням та поданням даних у певному форматі.
4.2 Обладнання для виконання роботи
персональний комп'ютер Pentium з мікропроцесором частотою понад 160 МГц, накопичувачем на гнучких дисках високої щільності, жорстким диском та накопичувачем на компакт-дисках;
пам'ять комп'ютера: оперативна пам'ять понад 32 Мбайт, на жорсткому диску понад 1,5 Гбайт вільного простору;
операційна система Windows ХР.
4.3 Підготовка до виконання роботи
Під час підготовки до лабораторної роботи студентам пропонується:
повторити вiдповiдний лекцiйний матерiал i вправи, котрі виконувалися на практичних заняттях;
засвоїти порядок виконання лабораторної роботи вiдповiдно до цих методичних вказiвок, пiдготувати на робочому місці необхiдне обладнання: комп'ютер, дискету, компакт-диск, олівець, аркуш паперу.
4.4 Методичні поради щодо виконання лабораторної роботи
Результатом запиту до таблиць може бути нова таблиця з простими даними або узагальнення, отримані на їхній основі. В роботі вивчається розподіл даних по групах і повернення даних у вигляді результата підсумкової функції. Підсумки в даному випадку означають зведення даних. Прикладом підсумкових даних може бути середній вік студентів певної групи.
В цій роботі, окрім директиви групування GROUP BY, вивчаються функції: COUNT (), що підраховує записи; SUM (), що підсумовує записи; функція AVG (), що усереднює значення, а також функції МАХ () і MIN () для знаходження найменшого і найбільшого значення в наборі записів.
Завдання 1. Перенести записи із існуючої таблиці в нову таблицю.
Перенести записи із існуючої таблиці Студенти_1 в нову таблицю таблицю Студенти_2 командою INSERT з пропозицією SELECT.
Порядок виконання завдання 1:
1. Створити дві таблиці однакової структури з іменами Студенти_1 та Студенти_2 відповідно (рис. 1 та рис. 2) командами:
CREATE TABLE Студенти_1 (Ім’я TEXT, Прізвище TEXT, Місто
TEXT, Школа INT, Стипендія INT);
CREATE TABLE Студенти_1 (Ім’я TEXT, Прізвище TEXT, Місто
TEXT, Школа INT, Стипендія INT);
2. Ввести дані в таблиці Студенти_1 та Студенти_2 командами:
INSERT INTO Студенти_1 (Ім’я, Прізвище, Місто, Школа, Стипендія)
VALUES ('Ілля', 'Назаренко', 'Київ', 20, 1000);
INSERT INTO Студенти_2 (Ім’я, Прізвище, Місто, [Школа №],
Стипендія) VALUES ('Вадим', 'Антонюк', 'Харків', 20, 1200);
Рисунок 1 – Початкова таблиця Студенти_1
Рисунок 2 – Початкова таблиця Студенти_2
3. Перенести записи із таблиці Студенти_1 в таблицю Студенти_2
(рис. 3, рис. 4, рис. 5) командами:
INSERT INTO Студенти_2 SELECT * FROM Студенти_1
WHERE Місто='Харків';
Рисунок 3 – Вихідна таблиця після запиту Місто='Харків'
INSERT INTO Студенти_2 SELECT * FROM Студенти_1
WHERE Місто IN ('Харків', 'Київ', 'Херсон');
Рисунок 4 – Виконання запиту Місто IN ('Харків', 'Київ', 'Херсон')
INSERT INTO Студенти_2 SELECT Ім’я, Прізвище, Місто, Школа, Стипендія
FROM Студенти_1 GROUP BY Ім’я, Прізвище, Місто, Школа, Стипендія;
Рисунок 5 – Вихідна таблиця Студенти_2 після перенесення записів
з таблиці Студенти_1 за умови GROUP BY Ім’я, …, Стипендія
Перша команда INSERT переносе в таблицю Студенти_2 результат запиту Select із таблиці Студенти_1 при дотриманні заданої умови відбору записів Місто='Харків'. Друга команда INSERT переносе в таблицю Студенти_2 всі рядки таблиці Студенти_1, для яких значення поля Місто належить множині значень IN ('Харків', 'Київ', 'Херсон'). Третя команда INSERT переносе в таблицю Студенти_2 всі рядки тих стовпців таблиці Студенти_1, для яких зазначено поля в операторі SELECT та пропозиції GROUP BY, а групування записів здійснено по полю Стипендія.
4. Згрупувати записи таблиці Студенти_2, приведеної на рисунку 5, у вихідні таблиці Студенти_2, що приведені на рисунку 6, командами:
SELECT Ім’я, Прізвище, Місто, Школа, Стипендія FROM Студенти_2
WHERE Місто="Харків" ORDER BY Школа;
SELECT Ім’я, Прізвище, Місто, Школа, Стипендія FROM Студенти_2
WHERE Місто="Харків" ORDER BY Стипендія;
SELECT Ім’я, Прізвище, Місто, Школа, Стипендія FROM Студенти_2
WHERE Місто="Харків" ORDER BY Школа, Стипендія;
Групування ідентичних даних в результативній таблиці запиту здійснюється пропозицією GROUP BY в операторі SELECT. Пропозиція GROUP BY повинна розміщуватися за пропозиціями FROM і WHERE. Стовпці, що підлягають групуванню, записуються у списку стовпців пропозиції GROUP BY один за одним з відокремленням комами.
Рисунок 6 – Групування даних по полям Місто, Школа, Стипендія
Завдання 2. Скласти для приведеного нижче запиту схему даних:
SELECT authors.au_id, authors.author, titles.title, titles.yearpub,
publishers.publisher
FROM ((titles INNER JOIN publishers ON titles.pub_id=publishers.pub_id)
INNER JOIN titleauthors ON titleauthors.title_id=titles.title_id)
INNER JOIN authors ON titleauthors.au_id=authors.au_id;
WHERE titles.yearpub>1996;
Порядок виконання завдання 2:
1. Визначити кількість таблиць та кількість умов з’єднання і обмежень.
До схеми даних належать чотири таблиці – publishers, titleauthors, titles, authors і чотири умови – три на об’єднання і одна на обмеження параметрів. Зв’язок між таблицями здійснюється трьома умовами злиття: titles.pub_id = publishers.pub_id, titleauthors.title_id = titles.title_id, titleauthors.au_id = authors.au_id і одною умовою на параметри WHERE titles.yearpub>1996.
2. Створити таблицю даних authors командою:
Create table authors (au_id INT, author Varchar);
Insert into authors (au_id, author) Values (1, "Isaac Asimov");
3. Створити таблицю даних titles командою:
Create table titles (title_id INT, title Varchar, yearpub INT);
Insert into titles (title_id, title, yearpub) Values (1, "The Green Mile", 2003);
4. Створити таблицю даних publishers командою:
Create table publishers (pub_id INT, publisher Varchar);
Insert into publishers (pub_id, publisher) Values (1, "US");
5. Створити таблицю даних titleauthors командою:
Create table titleauthors (au_id INT, title_id INT);
Insert into titleauthors (au_id, title_id) Values (1, 1);
6. Виконити запит на внутрішнє об’єднання та виведення даних з підтвердженням параметрів (рис. 7 та рис. 8) командою:
SELECT authors.au_id, authors.author, titles.title, titles.yearpub,
publishers.publisher FROM ((titles INNER JOIN publishers
ON titles.pub_id=publishers.pub_id) INNER JOIN titleauthors
ON titleauthors.title_id=titles.title_id) INNER JOIN authors
ON titleauthors.au_id=authors.au_id WHERE titles.yearpub>1996;