Перейти к основному содержимому

CRUD-операции и язык манипуляции данными (DML)

Разработчику Аналитику Тестировщику
Архитектору Инженеру

CRUD и DML

Что такое CRUD и DML?

DML (Data Manipulation Language) в отличие от DDL, выполняет работу не со структурой БД, а непосредственно с данными. В DML SQL оперирует четырьмя главными действиями, известными как CRUD:

  • Create – создание;
  • Read – чтение;
  • Update – обновление;
  • Delete – удаление.

Возьмём для примера таблицу users:

idnameageemail
1Том25tom@mail.com
2Артур30arthur@mail.com

CREATE

CREATE: Добавление данных.

Добавление данных выполняется путём добавления записи в таблицу, через команду INSERT – нужно указать «INSERT INTO»

INSERT INTO table_name (column1, column2) 
VALUES (value1, value2);

Шаблон построения:

INSERT INTO Куда? (Колонки) 
VALUES (Значения);

Пример:

INSERT INTO users (name, age, email) 
VALUES ('Мария', 22, 'maria@yandex.ru');

В итоге мы получим новую строку:

idnameageemail
1Том25tom@mail.com
2Артур30arthur@mail.com
3Мария22maria@yandex.ru
INSERT INTO <таблица> (<столбец_1>, <столбец_2>, ..., <столбец_n>)
VALUES (<значение_1>, <значение_2>, ..., <значение_n>);
  • <таблица> — имя целевой таблицы.
  • <столбец_i> — имя колонки, в которую записывается значение.
  • <значение_i> — литерал, соответствующий типу данных столбца.

Альтернативный вариант (для всех столбцов в порядке их определения):

INSERT INTO <таблица>
VALUES (<значение_1>, <значение_2>, ..., <значение_n>);

READ

READ: Чтение данных.

Чтение данных выполняется путем выбора данных (получения) через команду SELECT:

SELECT column1, column2 FROM table_name 
WHERE condition;

Шаблон построения:

SELECT Колонки FROM Таблица 
WHERE Условие;

Пример:

SELECT * FROM users;

* это выбор всех колонок, результат – будут отображены все строки таблицы. Если мы, к примеру, хотим получить только имена и адреса электронной почты, то:

SELECT name, email FROM users;

Если хотим добавить условие, к примеру, старше 25 лет:

SELECT * FROM users WHERE age > 25;
SELECT <выборка>
FROM <таблица>
[WHERE <условие>]
[ORDER BY <столбец> [ASC | DESC]]
[LIMIT <количество>];
  • <выборка> — перечень столбцов (name, email) или * для всех.
  • <таблица> — источник данных.
  • [WHERE <условие>] — фильтрация строк (необязательно).
  • [ORDER BY ...] — сортировка результата (необязательно).
  • [LIMIT ...] — ограничение числа возвращаемых строк (необязательно).

Примеры выборки:

  • SELECT * FROM users;
  • SELECT name, email FROM users WHERE age > 18;

UPDATE

UPDATE: Обновление данных.

Обновление данных работает с существующими записями, путем выполнения команды UPDATE:

UPDATE table_name 
SET column1 = new_value1, column2 = new_value2
WHERE condition;

Шаблон построения:

UPDATE Таблица 
SET Колонка = Значение
WHERE Условие;

Пример:

UPDATE users 
SET email = 'tom_new@mail.com'
WHERE id = 1;

После выполнения, у Тома (так как у него Id = 1) изменится запись в столбце email.

Опасно: если забыть WHERE, то обновятся все строки. Так можно сломать базу.

UPDATE <таблица>
SET <столбец_1> = <новое_значение_1>[, <столбец_2> = <новое_значение_2>, ...]
WHERE <условие>;
  • <таблица> — имя изменяемой таблицы.
  • <столбец_i> = <новое_значение_i> — пары «поле–значение» для обновления.
  • <условие> — обязательное выражение, определяющее, какие строки изменять.

DELETE

DELETE: Удаление данных.

Команда DELETE удаляет записи из таблицы:

DELETE FROM table_name 
WHERE condition;

Шаблон построения:

DELETE FROM ТАБЛИЦА
WHERE УСЛОВИЕ;

Пример:

DELETE FROM users 
WHERE id = 3;

После такой операции, удалится полностью строка с данными Марии.

Опасно: если забыть WHERE, удалятся все строки таблицы.

DELETE FROM <таблица>
WHERE <условие>;
  • <таблица> — имя таблицы, из которой удаляются строки.
  • <условие> — выражение, определяющее, какие строки подлежат удалению.

Практическое задание
Вставьте три записи в вашу созданную таблицу. Попробуйте сделать выбор всех записей в таблице. Обновите одну запись новым значением в любом столбце. Удалите одну из записей.