Добавил:
при поддержке музыки группы Anacondaz Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курило_ЛабРаб3.docx
Скачиваний:
0
Добавлен:
16.05.2025
Размер:
623.16 Кб
Скачать

4 Выполнение лабораторной работы

Так как в данной лабораторной работе предстоит работа с внесением и изменением данных в созданную ранее базу данных cargo_transportation, при выполнении рассматриваются необходимые для этого основные команды и их описание. 

Оператор INSERT используется для вставки данных в таблицу. Может иметь несколько форматов, включая однострочный синтаксис с указанием значений для каждого столбца или использование оператора SET. Оператор также может использовать ключевое слово IGNORE для игнорирования дубликатов при вставке. 

Удаление данных из таблицы можно выполнить с помощью оператора DELETE, который позволяет указать условие для удаления записей, и оператора TRUNCATE TABLE, который полностью очищает таблицу. 

Обновление данных обеспечивается оператором UPDATE, который позволяет изменить значения полей в существующих записях. Можно указать условие для выбора строк, которые будут обновлены. 

Оператор REPLACE аналогичен оператору INSERT, но перед вставкой новой записи он удаляет существующую запись с таким же значением уникального индекса. 

Таким образом, в данной лабораторной работе необходимо вставить данные с помощью оператора INSERT, удалить данные оператором DELETE и обновить данные с помощью оператора UPDATE

Заполнение таблиц базы данных cargo_transportation различными значениями изображено на рисунке 1.

Рисунок 1 – Заполнение таблиц базы данных

Вывод результатов заполнения таблиц отображен на рисунке 2.

Рисунок 2 – Вывод содержимого всех таблиц

Удаление данных из таблицы с помощью оператора DELETE представлено на рисунке 3.

Рисунок 3 – Удаление данных и проверка

Изменение данных таблицы с помощью оператора UPDATE представлено на рисунке 4.

Рисунок 4 – Обновление данных таблиц и проверка

Листинг 1. Процесс Выполнения задания

sql> INSERT INTO DRIVERS (driver_id, d_surname, d_name, d_patronymic, d_experiens) VALUES

-> (1, 'Иванов', 'Алексей', 'Петрович', 7),

-> (2, 'Смирнова', 'Елена', 'Владимировна', 4),

-> (3, 'Кузнецов', 'Дмитрий', 'Сергеевич', 10),

-> (4, 'Попов', 'Михаил', 'Игоревич', 2),

-> (5, 'Васильева', 'Ольга', 'Андреевна', 5);

Query OK, 5 rows affected (0.02 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO ROUTES VALUES

-> (1,'Москва - Санкт-Петербург',700,2500.00),

-> (2,'Екатеринбург - Новосибирск',900,3200.00),

-> (3,'Казань - Нижний Новгород',400,1800.00),

-> (4,'Ростов-на-Дону - Краснодар',300,1500.00),

-> (5,'Владивосток - Хабаровск',750,2800.00);

Query OK, 5 rows affected (0.01 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO TRANSPORTATIONS VALUES

-> (1,1,'2024-04-01','2024-04-02'),

-> (2,2,'2024-04-03','2024-04-05'),

-> (3,3,'2024-04-06','2024-04-06'),

-> (4,4,'2024-04-07','2024-04-08'),

-> (5,5,'2024-04-09','2024-04-11');

Query OK, 5 rows affected (0.01 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> INSERT INTO PAYMENT VALUES

-> (1,1,3,500.00),

-> (2,2,1,450.00),

-> (3,3,2,300.00),

-> (4,4,5,350.00),

-> (5,5,4,400.00);

Query OK, 5 rows affected (0.01 sec)

Records: 5 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM DRIVERS;

+-----------+--------------------+----------------+--------------------------+-------------+

| driver_id | d_surname | d_name | d_patronymic | d_experiens |

+-----------+--------------------+----------------+--------------------------+-------------+

| 1 | Иванов | Алексей | Петрович | 7 |

| 2 | Смирнова | Елена | Владимировна | 4 |

| 3 | Кузнецов | Дмитрий | Сергеевич | 10 |

| 4 | Попов | Михаил | Игоревич | 2 |

| 5 | Васильева | Ольга | Андреевна | 5 |

+-----------+--------------------+----------------+--------------------------+-------------+

5 rows in set (0.00 sec)

mysql> SELECT * FROM ROUTES;

+---------+---------------------------------------------------+-----------+---------+

| rout_id | r_name | r_mileage | r_rate |

+---------+---------------------------------------------------+-----------+---------+

| 1 | Москва - Санкт-Петербург | 700 | 2500.00 |

| 2 | Екатеринбург - Новосибирск | 900 | 3200.00 |

| 3 | Казань - Нижний Новгород | 400 | 1800.00 |

| 4 | Ростов-на-Дону - Краснодар | 300 | 1500.00 |

| 5 | Владивосток - Хабаровск | 750 | 2800.00 |

+---------+---------------------------------------------------+-----------+---------+

5 rows in set (0.00 sec)

mysql> SELECT * FROM TRANSPORTATIONS;

+----------+-----------+-------------+------------+

| trans_id | t_rout_id | t_departure | t_arrival |

+----------+-----------+-------------+------------+

| 1 | 1 | 2024-04-01 | 2024-04-02 |

| 2 | 2 | 2024-04-03 | 2024-04-05 |

| 3 | 3 | 2024-04-06 | 2024-04-06 |

| 4 | 4 | 2024-04-07 | 2024-04-08 |

| 5 | 5 | 2024-04-09 | 2024-04-11 |

+----------+-----------+-------------+------------+

5 rows in set (0.00 sec)

mysql> SELECT * FROM PAYMENT;

+--------+------------+-------------+---------+

| pay_id | p_trans_id | p_driver_id | p_bonus |

+--------+------------+-------------+---------+

| 1 | 1 | 3 | 500.00 |

| 2 | 2 | 1 | 450.00 |

| 3 | 3 | 2 | 300.00 |

| 4 | 4 | 5 | 350.00 |

| 5 | 5 | 4 | 400.00 |

+--------+------------+-------------+---------+

5 rows in set (0.00 sec)

mysql> -- Удаление водителей со стажем менее 3 лет

mysql> DELETE FROM DRIVERS WHERE d_experiens < 3;

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM DRIVERS;

+-----------+--------------------+----------------+--------------------------+-------------+

| driver_id | d_surname | d_name | d_patronymic | d_experiens |

+-----------+--------------------+----------------+--------------------------+-------------+

| 1 | Иванов | Алексей | Петрович | 7 |

| 2 | Смирнова | Елена | Владимировна | 4 |

| 3 | Кузнецов | Дмитрий | Сергеевич | 10 |

| 5 | Васильева | Ольга | Андреевна | 5 |

+-----------+--------------------+----------------+--------------------------+-------------+

4 rows in set (0.00 sec)

mysql> -- Увеличение премии на 15% для премий менее 400.00

mysql> UPDATE PAYMENT SET p_bonus = p_bonus * 1.15 WHERE p_bonus < 400.00;

Query OK, 2 rows affected (0.00 sec)

Rows matched: 2 Changed: 2 Warnings: 0

mysql> -- Обновление тарифной ставки для маршрутов длиной более 500 км

mysql> UPDATE ROUTES SET r_rate = r_rate * 1.1 WHERE r_mileage > 500;

Query OK, 3 rows affected (0.00 sec)

Rows matched: 3 Changed: 3 Warnings: 0

mysql> SELECT * FROM PAYMENT;

+--------+------------+-------------+---------+

| pay_id | p_trans_id | p_driver_id | p_bonus |

+--------+------------+-------------+---------+

| 1 | 1 | 3 | 500.00 |

| 2 | 2 | 1 | 450.00 |

| 3 | 3 | 2 | 345.00 |

| 4 | 4 | 5 | 402.50 |

+--------+------------+-------------+---------+

4 rows in set (0.00 sec)

mysql> SELECT * FROM ROUTES;

+---------+---------------------------------------------------+-----------+---------+

| rout_id | r_name | r_mileage | r_rate |

+---------+---------------------------------------------------+-----------+---------+

| 1 | Москва - Санкт-Петербург | 700 | 2750.00 |

| 2 | Екатеринбург - Новосибирск | 900 | 3520.00 |

| 3 | Казань - Нижний Новгород | 400 | 1800.00 |

| 4 | Ростов-на-Дону - Краснодар | 300 | 1500.00 |

| 5 | Владивосток - Хабаровск | 750 | 3080.00 |

+---------+---------------------------------------------------+-----------+---------+

5 rows in set (0.00 sec)

Соседние файлы в предмете Интеллектуальные базы данных