значениеВыражения — некоторое выражение с использованием допустимых SQL операторов, в выражении можно использовать имена ранее внесенных полей
Можно: insert into a (id1, id2) values (5, id1*3);
Нельзя: insert into a (id1, id2) values (id2*3, 9);
INSERT[INTO] имяТаблицы [(имяПоля1,...)]
SELECT …
create temporary table ta (a integer, b char(100));
insert into ta (a,b) select id1 , c from a;
INSERT[INTO] имяТаблицы
SET имяПоля1=значениеВыражения 1, имяПоля2=значениеВыражения 2, ...
3) Оператор UPDATE
UPDATE имяТаблицы SET имяПоля1=значение1 [, имяПоля2=значение2, ...]
[WHERE условия выборки изменяемых данных];
4) Оператор DELETE
DELETE FROM имяТаблицы
[WHERE условия выборки удаляемых данных];
Вложенные запросы SELECT.
Простые вложенные подзапросы. В подзапросе используется другая таблица. При выполнении такого запроса СУБД сначала исполняет вложенный запрос, результат его исполнения используется при выполнении внешнего запроса.
Язык SQL является избыточным в способах реализации запроса. Один и тот же результат можно получить используя соединение нескольких таблиц или используя вложенные подзапросы. При этом будет различаться время исполнения и задействованные ресурсы, поэтому такую особенность необходимо учитывать при оптимизации системы.
В ситуации когда вложенный подзапрос использует значения из той же таблицы, что и внешний ( например
SELECT f1,f2 from Table1
WHERE 34 IN (SELECT f FROM Table2 WHERE d = Table1.f3)
использует значение поля f3 из текущей строки таблицы Table1) СУБД будет исполнять вложенный подзапрос для каждой строки таблицы Тable1. Такой подзапрос называется коррелированным.