Федеральне агентство у справах освіти і науки Російської Федерації
Кафедра систем управління
ЗВІТ
з лабораторної роботи
за курсом В«Бази данихВ»
Тема:
Створення бази даних в MySQL
1. Створення бази і таблиць. Відкриємо консоль MySQL. Введемо ім'я користувача та пароль. Виведемо список створених баз даних.
mysql> SHOW DATABASES;
Створимо нову базу даних з іменем si mysql> CREATE DATABASE si;
Переглянемо бази даних, і виберемо ту, яку ми будемо використовувати.
mysql> SHOW DATABASES;
Зробимо створену базу поточної, і будемо в ній працювати.
mysql> USE si;
Створимо таблицю "prodav":
mysql> CREATE TABLE prodav
-> (name_prodav char (10), city_prodav char (10), comiss float, cod_prodav int (11));
Виведемо опис типів створеної таблиці
mysql> DESCRIBE prodav;
Аналогічно створимо і виведемо опис для таблиць "pokup" і "sale".
mysql> CREATE TABLE pokup
-> (cod_pokup int (11), name_pokup char (10), city_pokup char (10), rating int (11), cod
_prodav int (11));
mysql> DESCRIBE pokup;
mysql> CREATE TABLE sale
(cod_s int (11), cost_s float, date_s date, cod_pokup int (11), cod_prodav int (11));
mysql> DESCRIBE sale;
Подивимося список створених таблиць
mysql> SHOW TABLES;
Вводимо дані в таблиці. Спочатку заповнимо таблицю sale
mysql> INSERT INTO sale
-> VALUES (3003, 767, "2024-03-04", 2001, 1001);
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO sale
-> VALUES (3002, 1900, "2023-05-06", 2007, 1004);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3005, 5160, "2023-05-09", 2003, 1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3006, 1098, "2023-12-31", 2008, 1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3009, 1713, "2023-09-09", 2002, 1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3007, 75, "2023-05-08", 2004, 1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3008, 4723, "2023-09-11", 2006, 1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3010, 1309, "2023-05-01", 2004, 1002);
Query OK, 1 row affected (0.02 sec)
mysql> INSERT INTO sale
-> VALUES (3011, 9981, "2024-03-05", 2006, 1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO sale
-> VALUES (3001, 18, "2024-02-15", 2008, 1007);
Query OK, 1 row affected (0.00 sec)
Перевіримо правильність заповнення таблиці, для цього зробимо вибірку.
mysql> SELECT * FROM sale;
Аналогічно введемо дані в таблиці "prodav" і "pokup".
mysql> INSERT INTO prodav
-> VALUES ("Аксель", "Норильськ", 0.1,1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES ("Мискіна", "Лугу", 0.11,1004);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES ("Птіцин", "Лугу", 0.12,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES ("Рівкін", "Бабусин", 0.15,1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO prodav
-> VALUES ("Смирнов", "Сад", 0.13,1002);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM prodav;
Заповнимо таблицю "pokup".
mysql> INSERT INTO pokup
-> VALUES (2001, "Семенова", "Челябінськ", 100,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2002, "Ігошина", "Челябінськ", 200,1003);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2003, "Лі", "Сад", 200,1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2004, "Гресс", "Биково", 300,1002);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2006, "Клин", "Лугу", 100,1001);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2008, "Кузнєцов", "Сад", 300,1007);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO pokup
-> VALUES (2007, "Петров", "Ростов", 100,1004);
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM pokup;
2. Виконання запитів.
Запишемо запит, виведемо дані з таблиці "prodav", відносяться до міст Бабушкін та Луга.
mysql> SELECT * FROM prodav WHERE city_prodav = "Бабусин" OR city_prodav = "Луга";
У таблиці prodav, виведемо рядки, для яких 0.10
mysql> SELECT * FROM prodav WHERE comiss BETWEEN 0.1 AND 0.12;
Виведемо запису з таблиці продавців, для яких прізвище знаходиться від А до Н.
mysql> SELECT * FROM prodav WHERE name_prodav BETWEEN 'А%' AND 'Н%';
Підрахуємо кількість продавців
mysql> SELECT COUNT (DISTINCT cod_prodav) FROM sale;
Визначимо вартість продажів
mysql> SELECT SUM (cost_s) FROM sale;
Визначимо вартість продажів у продавця Птіцина
mysql> SELECT SUM (cost_s) FROM sale WHERE (Cod_prodav = (SELECT cod_prodav FROM prodav WHERE name_prodav = "Птіцин"));
Виведемо коди угод, де вартість операції перевищила середнє значення.
mysql> SELECT cod_s FROM sale WHERE cost_s> (SELECT AVG (cost_s) FROM sale);
Виведемо запису в таблиці угод, для яких вартість угод перевищує середнє значення за 2005 та наступні роки.
mysql> SELECT * FROM sale WHERE cost_s> (SELECT AVG (cost_s) FROM sale WHERE YEAR (date_s)> 2004);
Виведемо для кожного продавця, які покупці живуть в одному місті з продавцем.
mysql> SELECT prodav.name_prodav, pokup.name_pokup, pokup.city_pokup FROM prodav
, pokup WHERE prodav.city_prodav = pokup.city_pokup;
Виведемо у кожного продавця, які покупці в кожному місті у нього купують.
mysql> SELECT prodav.name_prodav, pokup.name_pokup, pokup.city_pokup FROM pokup, prodav WHERE pokup.cod_prodav = prodav.cod_prodav;