Лекция 6-7. Манипулирование данными (DML)
Язык манипулирования данными (DataManipulationLanguage, DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд: INSERT, UPDATE, DELETE.
Вставка (insert)
Новые строки добавляются с помощью команды INSERT. Эта команда содержит часть VALUES, в которой прописаны данные для каждой добавляемой строки:
INSERTINTOemployee(emp_id,emp_name,dep_id)
VALUES(1,'dilbert',1);
INSERT INTO employee(emp_id,emp_name,dep_id)
VALUES (2,'wally',1);
Автоинкрементные целочисленные ключи
Большинство современных баз данных содержит в себе функционал для генерации инкрементных целочисленных значений, которые обычно используются в качестве искусственных первичных ключей. Как в примере с таблицами «employee» и «department». Например, при использовании SQLite, столбец emp_id в коде выше будет автоматически создан целочисленным; при использовании MySQL для создания автоинкрементных ключей используется опция AUTO INCREMENT; в PostgreSQL для этих целей служит тип данных SERIAL. Когда используются генераторы автоинкрементных первичных ключей, можно опустить эти столбцы в команде INSERT:
INSERT INTO employee (emp_name,dep_id)
VALUES ('dilbert',1);
INSERT INTO employee(emp_name,dep_id)
VALUES ('wally',1);
Базы данных с этой функциональностью также позволяют получить сгенерированное при вставке значение. При этом используются нестандартные для SQL конструкции и/или функции. Например, в Postgre SQL это параметр RETURNING:
INSERT INTO employee(emp_name,dep_id)
VALUES ('dilbert',1)
RETURNING emp_id;
-
Обновление (Update)
Команда UPDATE служит для изменения данных в существующих строках, использую параметр WHERE для фильтрации строк по какому-либо условию и параметр SET для установки нового значения в нужный столбец:
UPDATE employee
SET dep_id=7
WHERE emp_name='dilbert'
Когда команда UPDATE выполняется по условию, как в примере выше, в результате может быть изменено любое количество строк. В том числе и ни одна. Обычно присутствует некоторый счётчик строк, который позволяет получить информацию о том, сколько строк было отфильтровано и, как следствие, изменено.
Удаление (Delete)
Команда DELETE служит для удаления строк. Также как и UPDATE использует параметр WHERE для выборки нужных строк:
DELETE FROM employee
WHERE dep_id=1
Лекция 8. Запросы (Queries)
Ключевой особенностью SQL является возможность построения запросов к данным. Для этого используется команда SELECT. Также как и в командах UPDATE и DELETE в ней присутствует параметр WHERE.
Например, можно выбрать строки у которых dep_id равен 12:
SELECTemp_id,emp_nameFROMemployeeWHEREdep_id=12
Команда SELECT из примера выше имеет следующие части:
Параметр FROM указывает таблицы, из которых выбираются строки.
Параметр WHERE используется для фильтрации выбираемых строк по какому-либо условию.
Между словами SELECT и FROM расположен список столбцов, которые необходимо показать из каждой отфильтрованной строки.
Результат примера может выглядеть как-то так:
-
emp_id
|
emp_name
|
1
|
wally
|
2
|
dilbert
|
5
|
wendy
|
Сортировка
К команде SELECT можно добавить параметр ORDER BY задающий по какому полю сортировать результаты:
SELECT emp_id, emp_name
FROM employee
WHERE dep_id=12
ORDERBY emp_name
-
emp_id
|
emp_name
|
2
|
dilbert
|
1
|
wally
|
5
|
wendy
|
Достарыңызбен бөлісу: |