DML команды в SQL

В следующую группу команд под названием DML входят команды для манипулирования данными, а именно:

  • команда SELECT для выборки данных из таблицы,
  • команда INSERT для вставки данных в таблицу,
  • команда DELETE для удаления строки таблицы
  • команда UPDATE для изменения строки таблицы.

Воспользуемся такими insert запросами для добавления категорий в таблицу с категориями.

# INSERT INTO product_category – означает добавить # в таблицу product_category. # Далее в скобочках перечисляем аттрибуты, # в которые мы собираемся # добавить данные. В скобочках после VALUES # указываем значения, которые будут # вставляться в аттрибуты, которые мы # указали в предыдущих скобках. INSERT INTO product_category(category_name) VALUES (‘Forniture’); INSERT INTO product_category(category_name) VALUES (‘Electrical appliance’);

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

# Добавляем стол. Как видим здесь уже # в скобках больше имен аттребутов # и значений аттребутов чем в прошлых # insert запросах. В таком случае # вставка происходит так: ‘Table’ # вставляется в столбец name, 129.98 # в столбец unit_price, ‘There should # be description of product’ # в столбец description и т.д. Думаю # порядок добавления понятен. INSERT INTO product (name, unit_price, description, additional_info, rating, ratings_amount, image_url, active, units_in_stock, category_id, date_created) # здесь видим что в аттребут # category_id (то есть в столбец внешнего # ключа) записано значение 1, что значит # что стол (‘Table’) имеет # категорию ‘Furniture’ (Мебель с англ.). VALUES (‘Table’, 129.98, ‘There should be description of product’, ‘There should be some additional info like characteristics or something’, 4.5, 131, ‘assets/img/products/clothes/placeholder.png’, 1, 50, 1, NOW()); # Подобным образом добавляем стул. INSERT INTO product (name, unit_price, description, additional_info, rating, ratings_amount, image_url, active, units_in_stock, category_id, date_created) VALUES (‘Chair’, 79.99, ‘There should be description of product’, ‘There should be some additional info like characteristics or something’, 3.5, 327, ‘assets/img/products/clothes/placeholder.png’, 1, 300, 1, NOW()); # И т.д. # Только здесь уже внешний ключ 2, так # как лампа – это электроприбор. INSERT INTO product (name, unit_price, description, additional_info, rating, ratings_amount, image_url, active, units_in_stock, category_id, date_created) VALUES (‘Lamp’, 199.98, ‘There should be description of product’, ‘There should be some additional info like characteristics or something’, 4.1, 700, ‘assets/img/products/clothes/placeholder.png’, 1, 240, 2, NOW()); INSERT INTO product (name, unit_price, description, additional_info, rating, ratings_amount, image_url, active, units_in_stock, category_id, date_created) VALUES (‘Toaster’, 299.99, ‘There should be description of product’, ‘There should be some additional info like characteristics or something’, 4.9, 206, ‘assets/img/products/clothes/placeholder.png’, 1, 1256, 2, NOW()); INSERT INTO product (name, unit_price, description, additional_info, rating, ratings_amount, image_url, active, units_in_stock, category_id, date_created) VALUES (‘Fan’, 169.97, ‘There should be description of product’, ‘There should be some additional info like characteristics or something’, 4.3, 300, ‘assets/img/products/clothes/placeholder.png’, 1, 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.

Example

Приведем пример.

Перед этим мы выводили все строки аттрибутов 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.

Search Icon

То есть мы достаем обе строки с помощью or, а не and, как на первый взгляд многим может показаться нужно делать.

Далее разберем ключевое слово Update. Оно нужно для обновления каких-либо строк таблицы по какому-то условию.

Например, изменим строку таблицы где ячейка аттрибута 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

Изучите агрегатные функции SQL: SUM(), AVG(), COUNT(), MIN(), MAX(). Узнайте, как применять их для анализа данных в столбцах таблиц с примерами запросов.
Time to read: 11

Group By и Having в SQL

Группировка данных в SQL: как GROUP BY и HAVING помогают агрегировать и фильтровать результаты. Практические примеры с COUNT и условиями выборки.
Time to read: 15

Подзапросы в SQL

Используйте подзапросы в SQL для выборки данных на основе результатов другого запроса. Примеры с MAX() и фильтрацией строк по условиям.
Time to read: 10