Введение
В этом практическом занятии (лабораторной работе) мы рассмотрим основные операции по манипулированию данными в MySQL. Вы научитесь вставлять, выбирать, обновлять и удалять данные в таблицах MySQL. Эти операции, обычно называемые CRUD (Create, Read, Update, Delete), являются основой для взаимодействия с базами данных. С помощью практических упражнений вы получите практический опыт в использовании этих важных операций с базами данных и поймете, как эффективно управлять данными в таблицах MySQL.
Основы вставки данных
На этом этапе мы научимся вставлять данные в таблицы MySQL с использованием оператора INSERT. Мы начнем с простой вставки одной строки, а затем перейдем к вставке нескольких строк.
Сначала подключимся к MySQL:
sudo mysql -u root
После подключения выберите базу данных store:
USE store;
Вставка одной строки
Начнем с вставки одного продукта в таблицу products:
INSERT INTO products (name, price, description)
VALUES ('Coffee Maker', 49.99, 'A 12-cup drip coffee maker with programmable timer');
Разберем эту команду:
INSERT INTO products: Указывает таблицу, в которую мы вставляем данные.(name, price, description): Перечисляет столбцы, для которых мы предоставляем значения.VALUES (...): Указывает фактические значения для вставки.
Обратите внимание, что мы не включили:
id: Это поле с автоинкрементом, поэтому MySQL обрабатывает его автоматически.created_at: У него есть значение по умолчанию - текущая временная метка.
Для проверки вставки мы можем выбрать данные:
SELECT * FROM products;
Вы должны увидеть вывод, похожий на следующий:
+----+--------------+--------+----------------------------------------------------+---------------------+
| id | name | price | description | created_at |
+----+--------------+--------+----------------------------------------------------+---------------------+
| 1 | Coffee Maker | 49.99 | A 12-cup drip coffee maker with programmable timer | 2024-11-07 09:12:06 |
+----+--------------+--------+----------------------------------------------------+---------------------+
Вставка нескольких строк
Теперь вставим сразу несколько продуктов. Это более эффективно, чем вставлять строки по одной:
INSERT INTO products (name, price, description) VALUES
('Toaster', 29.99, '2-slice toaster with multiple browning settings'),
('Blender', 79.99, 'High-speed blender for smoothies and soups'),
('Microwave', 129.99, '1000-watt microwave with digital controls');
Эта команда имеет ту же структуру, что и вставка одной строки, но включает несколько наборов значений, разделенных запятыми.
Проверим наши вставки:
SELECT * FROM products;
Вы должны увидеть вывод, похожий на следующий:
+----+--------------+--------+----------------------------------------------------+---------------------+
| id | name | price | description | created_at |
+----+--------------+--------+----------------------------------------------------+---------------------+
| 1 | Coffee Maker | 49.99 | A 12-cup drip coffee maker with programmable timer | 2024-11-07 09:12:06 |
| 2 | Toaster | 29.99 | 2-slice toaster with multiple browning settings | 2024-11-07 09:12:16 |
| 3 | Blender | 79.99 | High-speed blender for smoothies and soups | 2024-11-07 09:12:16 |
| 4 | Microwave | 129.99 | 1000-watt microwave with digital controls | 2024-11-07 09:12:16 |
+----+--------------+--------+----------------------------------------------------+---------------------+
Основные запросы SELECT
На этом этапе мы научимся получать данные из нашей таблицы с использованием операторов SELECT. Мы рассмотрим различные способы выбора и форматирования вывода.
Выбор конкретных столбцов
Вместо выбора всех столбцов с помощью *, мы можем точно указать, какие столбцы мы хотим видеть:
SELECT name, price FROM products;
Это дает нам более конкретное представление о наших данных:
+-------------+--------+
| name | price |
+-------------+--------+
| Coffee Maker| 49.99 |
| Toaster | 29.99 |
| Blender | 79.99 |
| Microwave | 129.99 |
+-------------+--------+
Использование псевдонимов столбцов
Мы можем сделать вывод более читаемым, используя псевдонимы столбцов с ключевым словом AS:
SELECT
name AS product_name,
price AS retail_price,
price * 0.8 AS sale_price
FROM products;
Этот запрос:
- Переименовывает
nameвproduct_name - Переименовывает
priceвretail_price - Вычисляет цену по скидке (со скидкой 20%) и называет ее
sale_price
Вы увидите вывод, похожий на следующий:
+-------------+-------------+------------+
| product_name| retail_price| sale_price |
+-------------+-------------+------------+
| Coffee Maker| 49.99 | 39.99 |
| Toaster | 29.99 | 23.99 |
| Blender | 79.99 | 63.99 |
| Microwave | 129.99 | 103.99 |
+-------------+-------------+------------+
Фильтрация результатов
Мы можем использовать предложение WHERE для фильтрации результатов:
SELECT name, price
FROM products
WHERE price < 50.00;
Это показывает только продукты стоимостью менее 50 долларов:
+-------------+-------+
| name | price |
+-------------+-------+
| Coffee Maker| 49.99 |
| Toaster | 29.99 |
+-------------+-------+
Обновление данных
На этом этапе мы научимся изменять существующие данные с использованием оператора UPDATE. Оператор UPDATE позволяет нам изменять значения в наших таблицах.
ВАЖНО: Всегда используйте предложение WHERE с операторами UPDATE! Без предложения WHERE обновление повлияет на ВСЕ строки в таблице.
Предположим, что нам нужно повысить цену нашего кофеварки:
UPDATE products
SET price = 54.99
WHERE name = 'Coffee Maker';
Мы также можем обновить несколько столбцов сразу:
UPDATE products
SET
price = 89.99,
description = 'Professional-grade high-speed blender for smoothies and soups'
WHERE name = 'Blender';
Для проверки наших обновлений:
SELECT name, price, description
FROM products
WHERE name IN ('Coffee Maker', 'Blender');
Вы должны увидеть обновленные значения:
+--------------+-------+---------------------------------------------------------------+
| name | price | description |
+--------------+-------+---------------------------------------------------------------+
| Coffee Maker | 54.99 | A 12-cup drip coffee maker with programmable timer |
| Blender | 89.99 | Professional-grade high-speed blender for smoothies and soups |
+--------------+-------+---------------------------------------------------------------+
Удаление данных
На этом последнем этапе мы научимся удалять данные из наших таблиц с использованием оператора DELETE. Как и в случае с оператором UPDATE, крайне важно использовать предложение WHERE с оператором DELETE, чтобы избежать случайного удаления всех данных.
Удалим тостер из нашей таблицы продуктов:
DELETE FROM products
WHERE name = 'Toaster';
Для проверки удаления:
SELECT * FROM products;
Вы должны увидеть все продукты, кроме тостера:
+----+-------------+-------+-----------------------------------------------------+---------------------+
| id | name | price | description | created_at |
+----+-------------+-------+-----------------------------------------------------+---------------------+
| 1 | Coffee Maker| 54.99 | A 12-cup drip coffee maker with programmable timer | 2024-01-01 12:00:00 |
| 3 | Blender | 89.99 | Professional-grade high-speed blender for smoothies| 2024-01-01 12:00:00 |
| 4 | Microwave | 129.99| 1000-watt microwave with digital controls | 2024-01-01 12:00:00 |
+----+-------------+-------+-----------------------------------------------------+---------------------+
Мы также можем удалить несколько строк сразу. Удалим все продукты стоимостью более 100 долларов:
DELETE FROM products
WHERE price > 100;
После этого микроволновка должна исчезнуть из списка наших продуктов.
MariaDB [store]> SELECT * FROM products;
+----+--------------+-------+---------------------------------------------------------------+---------------------+
| id | name | price | description | created_at |
+----+--------------+-------+---------------------------------------------------------------+---------------------+
| 1 | Coffee Maker | 54.99 | A 12-cup drip coffee maker with programmable timer | 2024-11-07 09:12:06 |
| 3 | Blender | 89.99 | Professional-grade high-speed blender for smoothies and soups | 2024-11-07 09:12:16 |
+----+--------------+-------+---------------------------------------------------------------+---------------------+
Резюме
В этом практическом занятии (лабораторной работе) мы рассмотрели основные операции по манипуляции данными в MySQL:
- Операторы INSERT для добавления одной или нескольких строк данных
- Запросы SELECT для извлечения и форматирования данных
- Операторы UPDATE для изменения существующих данных
- Операторы DELETE для удаления данных из таблиц
Эти операции составляют основу манипуляции с базами данных и являются обязательными навыками для любого, кто работает с базами данных.
