Основы манипуляции данными в MySQL

SQLSQLBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) мы рассмотрим основные операции по манипулированию данными в MySQL. Вы научитесь вставлять, выбирать, обновлять и удалять данные в таблицах MySQL. Эти операции, обычно называемые CRUD (Create, Read, Update, Delete), являются основой для взаимодействия с базами данных. С помощью практических упражнений вы получите практический опыт в использовании этих важных операций с базами данных и поймете, как эффективно управлять данными в таблицах MySQL.

Это Guided Lab, который предоставляет пошаговые инструкции, чтобы помочь вам учиться и практиковаться. Внимательно следуйте инструкциям, чтобы выполнить каждый шаг и получить практический опыт. Исторические данные показывают, что это лабораторная работа уровня начальный с процентом завершения 93%. Он получил 100% положительных отзывов от учащихся.

Базовая вставка данных

На этом этапе мы научимся вставлять данные в таблицы 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:

  1. Операторы INSERT для добавления одной или нескольких строк данных
  2. Запросы SELECT для извлечения и форматирования данных
  3. Операторы UPDATE для изменения существующих данных
  4. Операторы DELETE для удаления данных из таблиц

Эти операции составляют основу манипуляции с базами данных и являются обязательными навыками для любого, кто работает с базами данных.