- •5.05010201 “Обслуговування комп’ютерних систем і мереж”
- •Мета виконання лабораторно-практичних робіт
- •Порядок виконання лабораторно-практичних робіт
- •Оформлення звітів про виконання лабораторно-практичних робіт
- •Лабораторна роботи №1
- •Теоретичні відомості
- •Питання вихідного контролю
- •Лабораторна роботи № 2
- •1 Теоретичні відомості Проектування бази даних
- •Етапи створення бд
- •2 Підготовка до виконання роботи
- •3 Питання вхідного контролю
- •4 Порядок виконання роботи
- •5 Питання вихідного контролю
- •Лабораторна робота №3
- •1 Теоретичні відомості
- •2 Підготовка до виконання роботи
- •3 Питання вхідного контролю
- •4 Варіанти індивідуальних завдань
- •5 Інструмент, обладнання прилади
- •6 Порядок виконання роботи
- •7 Питання вихідного контролю
- •Лабораторна роботи № 4
- •1 Теоретичні відомості
- •6 Питання вихідного контролю
- •Лабораторна роботи № 5
- •1 Теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Підготовка до виконання роботи
- •5 Інструмент, обладнання прилади
- •6 Порядок виконання роботи
- •7 Питання вихідного контролю
- •Лабораторна роботи № 6
- •1 Теоретичні відомості
- •Синтаксис оператора select:
- •Функції
- •Групові функції в операторі select:
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Підготовка до виконання роботи
- •6 Питання вихідного контролю
- •Лабораторна роботи № 8
- •1 Теоретичні відомості
- •2 Підготовка до виконання роботи
- •3 Питання вхідного контролю
- •4 Порядок виконання роботи
- •5 Питання вихідного контролю
- •Лабораторна роботи № 9
- •1 Теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4. Варіанти індивідуальних завдань
- •5 Підготовка до виконання роботи
- •6 Порядок виконання роботи
- •7 Питання вихідного контролю
- •Лабораторна роботи № 10
- •1 Теоретичні відомості синтаксис оператора select:
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Інструмент, обладнання прилади
- •6 Порядок виконання роботи
- •7 Питання вихідного контролю
- •Лабораторна робота № 11
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Питання вихідного контролю
- •Лабораторна роботи № 12
- •1 Теоретичні відомості
- •2 Підготовка до виконання роботи
- •3 Питання вхідного контролю
- •4 Порядок виконання роботи
- •5 Питання вихідного контролю
- •Лабораторна роботи № 13
- •1 Теоретичні відомості
- •2 Підготовка до виконання роботи
- •3 Питання вхідного контролю
- •4 Інструмент, обладнання прилади
- •5 Порядок виконання роботи
- •6 Питання вихідного контролю
- •Практична робота №1
- •1 Короткі теоретичнi вiдомостi
- •Елементи моделі. Будь-який фрагмент предметної області може бути представлений як множина сутностей, між якими існує певна множина зв'язків.
- •3 Практичне завдання
- •4 Контрольні запитання
- •Практична робота №2
- •1 Короткі теоретичні відомості
- •2 Варіанти практичних завдань
- •4 Контрольні запитання
- •Практична робота № 3
- •1 Теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Підготовка до виконання роботи
- •6 Порядок виконання роботи
- •7 Питання вихідного контролю
- •Практична робота № 4
- •1 Короткі теоретичні відомості
- •2 Питання вхідного контролю
- •3 Постановка завдання
- •4 Варіанти індивідуальних завдань
- •5 Підготовка до виконання роботи
- •6 Питання вихідного контролю
- •Список рекомендованої літератури
2 Питання вхідного контролю
1 Які є різновиди оператора INSERT ?
2 Який оператор відповідає за вставку даних до таблиць?
3 Як можна додавати рядки в таблицю?
4 Для чого призначений оператор UPDATE?
5 В чому суть оновлення рядків за умовою?
3 Постановка завдання
1 Для бази даних Успішність з чотирьох таблиць: Група, Студенти, Дисципліни, Оцінки ввести по 5-10 базу даних.
2 Створити між табличні зв’язки таблиці Оцінки з таблицями Група, Дисципліна, Студенти по полях Код групи, Код дисципліни, Код студента відповідно.
3 Створити запити на мові SQL для варіанту, що відповідає порядковому номеру студента в журналі.
4. Варіанти індивідуальних завдань
1. Додати рядок до таблиці Група за допомогою операторів SQL.
2. Створити таблицю, яка має 2 поля числові і 2 текстові заданої розмірності
3. Збільшити кількість студентів в таблиці Студенти на 5.
4. Додати рядок до таблиці Дисципліна за допомогою операторів SQL.
5. Видалити відомості про групи, число студентів яких менше 10.
6. Створити таблицю, яка має 1 поле числове(10), і 2 поля текстові розмірності 23 45.
7. Збільшити кількість студентів в таблиці Студенти на 10% за допомогою операторів SQL.
8. Видалити відомості про дисципліни, код яких менше 3
9. Додати рядок до таблиці Оцінки за допомогою операторів SQL.
10. Створити таблицю за допомогою операторів SQL, яка має 3 поля числові і 2 текстові розмірності 50
11. Видалити відомості про групи, число студентів яких більше 30
12. Додати рядок до таблиці Студенти за допомогою операторів SQL.
13. Збільшити кількість студентів в таблиці Студенти на 5% за допомогою операторів SQL.
14. Збільшити кількість студентів в усіх групах на 10
5 Підготовка до виконання роботи
1 Ознайомитись з інструкцією.
2 Опрацювати теоретичний матеріал.
3 Дати відповіді на контрольні запитання вхідного контролю.
4 Продумати методику виконання роботи.
5 Підготувати бланк звіту.
6 Порядок виконання роботи
1 Отримати допуск до виконання роботи, давши відповіді на контрольні запитання вхідного контролю.
2 Запустити монітор mysql за допомогою ярлика на робочому столі.
3 Відповідно до теоретичних положень здійснити основні маніпуляції з власною базою даних (вставити дані, знищити дані, обновити дані).
4 Результати виконання інформаційних запитів записати у звіт по роботі і продемонструвати викладачеві.
7 Питання вихідного контролю
1 Скільки варіантів оператора INSERT ви знаєте.
2 Запишіть приклад оператора знищення даних з бази.
3 Наведіть приклад використання оператора обновлення даних.
5 Які дії виконує оператор INSERT.. .SELECT?
6 Який оператор служить для видалення даних з таблиць?
7 Який оператор дозволяє здійснити обновлення даних?
Лабораторна роботи № 10
Тема: Побудова простих запитів засобами мови MySQL
Мета: Навчитися будувати прості запити до бази даних за допомогою оператора SELECT. Навчитися отримувати з бази даних необхідну інформацію.
1 Теоретичні відомості синтаксис оператора select:
SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,...
[FROM tables... [WHERE where_definition] [GROUP BY column,...]
[ORDER BY column [ASC | DESC], ...] HAVING full_where_definition
[LIMIT [offset,] rows] [PROCEDURE procedure_name]]
[INTO OUTFILE 'file_name'... ]
Тут where_definition:
where_definition:
where_expr or where_expr [AND | OR] where_expr
where_expr має формат:
where_expr:
column_name [> | >= | = | <> | <= | <]
column_name_or_constant or column_name LIKE column_name_or_constant or
column_name IS NULL or column_name IS NOT NULL or (where_definition)
ОПИС:
Оператор SELECT є наріжним каменем усієї мови SQL. Він використовується, щоб виконати запити до бази даних. Це дійсно основа мови SQL. В MySQL версії менше 3.21.x речення WHERE дуже обмежене. HAVING буде працювати там, де речення WHERE нічого не робить. Деякі приклади, які не працюють у реченні WHERE - REGEXP і операторі !. В основному, Ви не можете використовувати функції з WHERE, але Ви можете використовувати функції з HAVING.
HAVING по суті, WHERE стосовно до результатів. Він використовується головним чином для вузької області даних, повернутих запитом. Ви повинні мати права select для використання SELECT.
Найвища ціна. SELECT MAX(price) FROM shop;
+ -------+
| article |
+ -------+
| 4 |
+ -------+
Вся інформація про найдорожчу статтю.
SELECT *
FROM shop
WHERE price = ( SELCT MAX(price) FROM shop )
У цьому запиті використовується підзапит – значення поля дорівнює результату вкладеного запиту. На жаль, MySQL "поки що" не підтримує підзапити, тому для вирішення цього завдання необхідно виконати таке: знайти найвищу ціну після чого робити звичайне порівняння : ... WHERE price=знайдена ціна.
Найвища ціна за кожну зі статей.
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article
Цей запит виконає MAX(price) для кожного значення поля article і виведе наступне:
+---------+-------+
| article | price |
+ --------+ -------+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+--------+-------+
Продавець, що продає статтю по найвищій ціні, для кожної статті
SELECT article, dealer, price
FROM shop s1
WHERE price = ( SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article )
Найкращим способом виконати це завдання в MySQL є такий: виконати попередній запит (знаходження найвищої ціни за кожну з статей), після чого для кожної статті знайти рядок, у якій ціна дорівнює відповідному знайденому максимальному значенню.
CREATE TEMPORARY TABLE tmp (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL);
LOCK TABLES article read;
INSERT INTO tmp SELECT article, MAX(price)
FROM shop GROUP BY article;
SELECT article, dealer, price FROM shop, tmp
WHERE shop.article=tmp.article AND shop.price=tmp.price;
UNLOCK TABLES;
DROP TABLE tmp;
Використання зовнішніх ключів. Єдине, що MySQL не дозволяє робити – це виконувати операцію CHECK для перевірки існування ключа в таблиці; і автоматично видаляти рядки з таблиці з певним зовнішнім ключем.
Приклад роботи із зовнішніми ключами. Створення першої таблиці:
CREATE TABLE persons (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
name CHAR(60) NOT NULL,
PRIMARY KEY (id)
);
Створення другої таблиці:
CREATE TABLE shirts (
id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
style ENUM(' t-shirt', 'polo', 'dress') NOT NULL,
color ENUM('red', 'blue', 'orange', 'white', 'black') NOT NULL,
owner SMALLINT UNSIGNED NOT NULL REFERENCES persons,
PRIMARY KEY (id)
);
Наповнення створених таблиць:
INSERT INTO persons VALUES (NULL, 'Antonio Paz');
INSERT INTO shirts VALUES
(NULL, 'polo', 'blue', LAST_INSERT_ID()),
(NULL, 'dress', 'white', LAST_INSERT_ID()),
(NULL, ' t-shirt', 'blue', LAST_INSERT_ID());
INSERT INTO persons VALUES (NULL, 'Lilliana Angelovska');
INSERT INTO shirts VALUES
(NULL, 'dress', 'orange', LAST_INSERT_ID()),
(NULL, 'polo', 'red', LAST_INSERT_ID()),
(NULL, 'dress', 'blue', LAST_INSERT_ID()),
(NULL, ' t-shirt', 'white', LAST_INSERT_ID());
Перевірка наповнення таблиць:
SELECT * FROM persons;
+---+--------------------------+
| id | name |
+ --+--------------------------+
| 1 | Antonio Paz |
| 2 | Lilliana Angelovska |
+---+--------------------------+
SELECT * FROM shirts;
+ --+--------+--------+-------+
| id | style | color | owner |
+---+--------+ -------+--------+
| 1 | polo | blue | 1 |
| 2 | dress | white | 1 |
| 3 | t-shirt | blue | 1 |
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
| 7 | t-shirt | white | 2 |
+---+--------+--------+--------+
Тепер можливо виконати запит з об'єднанням цих двох таблиць із ключем id (Всі небілі футболки, що належать людям, чиї імена починаються з 'Lilliana'):
SELECT s.* FROM persons p, shirts s
WHERE p.name LIKE 'Lilliana%'
AND s.owner = p.id
AND s.color <> 'white';
+---+------+---------+--------+
| id | style | color | owner |
+---+------+---------+--------+
| 4 | dress | orange | 2 |
| 5 | polo | red | 2 |
| 6 | dress | blue | 2 |
+---+-------+--------+--------+
