DML команды в SQL
Last updated: 8 мая 2025 г.В следующую группу команд под названием DML
входят команды для манипулирования данными, а именно:
- команда
SELECT
для выборки данных из таблицы, - команда
INSERT
для вставки данных в таблицу, - команда
DELETE
для удаления строки таблицы - команда
UPDATE
для изменения строки таблицы.
Воспользуемся такими insert
запросами для добавления категорий в таблицу с категориями.
1# INSERT INTO product_category – означает добавить
2# в таблицу product_category.
3# Далее в скобочках перечисляем аттрибуты,
4# в которые мы собираемся
5# добавить данные. В скобочках после VALUES
6# указываем значения, которые будут
7# вставляться в аттрибуты, которые мы
8# указали в предыдущих скобках.
9
10INSERT INTO product_category(category_name)
11VALUES (‘Forniture’);
12INSERT INTO product_category(category_name)
13VALUES (‘Electrical appliance’);
Воспользуемся такими insert
запросами для добавления продуктов в таблицу с продуктами.
1# Добавляем стол. Как видим здесь уже
2# в скобках больше имен аттребутов
3# и значений аттребутов чем в прошлых
4# insert запросах. В таком случае
5# вставка происходит так: ‘Table’
6# вставляется в столбец name, 129.98
7# в столбец unit_price, ‘There should
8# be description of product’
9# в столбец description и т.д. Думаю
10# порядок добавления понятен.
11INSERT INTO product (name, unit_price,
12description, additional_info, rating,
13ratings_amount, image_url, active,
14units_in_stock, category_id, date_created)
15# здесь видим что в аттребут
16# category_id (то есть в столбец внешнего
17# ключа) записано значение 1, что значит
18# что стол (‘Table’) имеет
19# категорию ‘Furniture’ (Мебель с англ.).
20VALUES (‘Table’, 129.98, ‘There should be
21description of product’, ‘There should be
22some additional info like characteristics
23or something’, 4.5, 131,
24‘assets/img/products/clothes/placeholder.png’,
251, 50, 1, NOW());
26
27# Подобным образом добавляем стул.
28INSERT INTO product (name, unit_price,
29description, additional_info, rating,
30ratings_amount, image_url, active, units_in_stock,
31category_id, date_created)
32VALUES (‘Chair’, 79.99, ‘There should be
33description of product’, ‘There should be some
34additional info like characteristics or something’,
353.5, 327, ‘assets/img/products/clothes/placeholder.png’,
361, 300, 1, NOW());
37
38# И т.д.
39# Только здесь уже внешний ключ 2, так
40# как лампа – это электроприбор.
41INSERT INTO product (name, unit_price, description,
42additional_info, rating, ratings_amount, image_url,
43active, units_in_stock, category_id, date_created)
44VALUES (‘Lamp’, 199.98, ‘There should be
45description of product’, ‘There should be some
46additional info like characteristics or something’,
474.1, 700, ‘assets/img/products/clothes/placeholder.png’,
481, 240, 2, NOW());
49
50INSERT INTO product (name, unit_price, description,
51additional_info, rating, ratings_amount, image_url,
52active, units_in_stock, category_id, date_created)
53VALUES (‘Toaster’, 299.99, ‘There should be description
54of product’, ‘There should be some additional info
55like characteristics or something’, 4.9, 206,
56‘assets/img/products/clothes/placeholder.png’,
571, 1256, 2, NOW());
58
59INSERT INTO product (name, unit_price, description,
60additional_info, rating, ratings_amount, image_url,
61active, units_in_stock, category_id, date_created)
62VALUES (‘Fan’, 169.97, ‘There should be description
63of product’, ‘There should be some additional info
64like characteristics or something’, 4.3, 300,
65‘assets/img/products/clothes/placeholder.png’,
661, 100, 2, NOW());
Давайте воспользуемся этими запросами.
Добавим категории в таблицу категорий.

Добавим продукты в таблицу с продуктами.

Теперь познакомимся с командой, которую вы будете чаще всего использовать.
Это команда SELECT
для выборки данных из таблицы.
Выбирать все данные из таблицы с категориями можно с помощью запроса:
SELECT * FROM product_category;
После select указываются имена атрибутов данные, которых мы хотим выбрать из таблицы. В данном случае указана *
, что значит что нужно выбрать данные вообще всех атрибутов в таблице.
После from указывается из какой таблицы мы собираемся выбирать данные аттрибутов. В данном случае из таблицы product_category
.
Таким образом вбив данную команду в mysql консоли можно увидеть всё содержимое таблицы product_category
.

Таким образом мы выбрали данные всех аттрибутов в таблице. Аттрибута там два – id
и category_name
.
Эти данные, как мы помним, мы туда ранее добавляли с помощью insert
.
Теперь выберем столбцы name и unit_price из таблицы с продуктами запросом:
SELECT name,unit_price FROM product;

Видим, что мы выбрали этой командой только два аттрибута.
Как же нам теперь выбрать отдельную строку или несколько строк таблицы, а не все строки?
Для этого существует слово Where
.
Приведем пример.
Перед этим мы выводили все строки аттрибутов name и unit_price.
Теперь выведем только те строки аттрибутов name и unit_price где в аттрибуте id стоит 1. Ясное дело это будет одна строка, так как мы извлекаем по ключу id.
Это можно сделать командой:
SELECT name,unit_price FROM product WHERE id = 1;

Как видим, мы получили одну строку. Эта строка, в которой ячейка аттрибута id равна единице. Давайте даже проверим это:

Действительно, как видим Table, 129,98 и 1 находятся в одной строке.
Словом SELECT мы задаем какие аттрибуты выбирать, а словом where какие строки. Точнее говоря словом Where мы задаем условие по которому происходит выборка строк.
Выберем теперь несколько строк и также выведем аттрибут id
.

Как видим мы воспользовались ключевым логическим оператором or(или)
.
В условиях можно писать все стандартные логические операторы and
, or или not
.
А в данном случае мы запросили строки таблицы с продуктами где в ячейке аттрибута id находиться 2 или 4.
То есть мы достаем обе строки с помощью or, а не and, как на первый взгляд многим может показаться нужно делать.
Далее разберем ключевое слово Updat
e
. Оно нужно для обновления каких-либо строк таблицы по какому-то условию.
Например, изменим строку таблицы где ячейка аттрибута id = 5. Менять мы будем ячейку аттрибута цены продукта в этой строке.
Для этого воспользуемся запросом:
UPDATE product SET unit_price = 299 WHERE id = 5;

Посмотрим теперь содержимое таблицы после изменений:

Как мы помним, в строке где id был 5 цена была 169.97, теперь она изменилась на 299.
Вернем обратно с помощью запроса:
UPDATE product SET unit_price = 169.97 WHERE id = 5;

Далее разберем ключевое слово Delete
. Оно нужно для удаления строк таблицы.
Например, удалим строки таблицы у которых id >= 3. То есть удалиться строка с id=3, строка с id=4 и строка с id=5.
Сделаем это с помощью запроса:
DELETE product WHERE id >= 3;.

Как видим, три последние строки таблицы удалились.
Вернем их обратно.

Проверим содержимое таблицы теперь.

Как видим, они вернулись, но уже с другими id.
Следующие уроки
Агрегатные функции в SQL
11
мин.
Group By и Having в SQL
15
мин.
Подзапросы в SQL
10
мин.