Пример 1.1.
Пример 1.2.
Комментарий:
В примерах показано две версии использования оператора INSERT. Первая из них требует установку значений для всех полей. Кроме того, эти значения должны быть введены в точном порядке (по мере их появления в таблице). Вторая версия более удобна, потому что вводим значения для полей, которые нас интересуют.
Пример 2.
Комментарий:
Интересная возможность вставки записей, основанных на результатах возвращаемого запроса, конкретнее подзапроса в этом контексте.
Пример 3.
Комментарий:
Конечно же, подзапрос не должен взимать данные из той таблицы, в которую записываем. Главное соотношение типов.
INSERT INTO emp VALUES (101, 'Willson', 'Jack', null, null, null, null, null, null, null, null);
SELECT first_name, last_name FROM emp WHERE last_name LIKE 'Will%';
FIRST_NAME LAST_NAME
------------------------- -------------------------
Jack Willson
FIRST_NAME LAST_NAME
------------------------- -------------------------
Jack Willson
Пример 1.2.
INSERT INTO emp (id, last_name, start_date) VALUES (102, 'Bourne', TO_DATE('01-05-2004', 'DD-MM-YYYY'))
SELECT id, first_name, last_name, start_date FROM emp WHERE last_name LIKE 'Bou%';
ID FIRST_NAME LAST_NAME START_DATE
---------- ----------------- ----------------- -------------
102 NULL Bourne 01-05-2004
ID FIRST_NAME LAST_NAME START_DATE
---------- ----------------- ----------------- -------------
102 NULL Bourne 01-05-2004
Комментарий:
В примерах показано две версии использования оператора INSERT. Первая из них требует установку значений для всех полей. Кроме того, эти значения должны быть введены в точном порядке (по мере их появления в таблице). Вторая версия более удобна, потому что вводим значения для полей, которые нас интересуют.
Пример 2.
INSERT INTO region (id, name) SELECT id*100, name||' --> copy' FROM region
SELECT * from region;
ID NAME
---------- --------------------------------------------------
1 North America
2 South America
3 Africa / Middle East
4 Asia
5 Europe
100 North America --> copy
200 South America --> copy
300 Africa / Middle East --> copy
400 Asia --> copy
500 Europe --> copy
ID NAME
---------- --------------------------------------------------
1 North America
2 South America
3 Africa / Middle East
4 Asia
5 Europe
100 North America --> copy
200 South America --> copy
300 Africa / Middle East --> copy
400 Asia --> copy
500 Europe --> copy
Комментарий:
Интересная возможность вставки записей, основанных на результатах возвращаемого запроса, конкретнее подзапроса в этом контексте.
Пример 3.
INSERT INTO region (id, name)
SELECT id*1000, last_name||' --> tabel EMP'
FROM emp
WHERE salary > 1500;
SELECT id*1000, last_name||' --> tabel EMP'
FROM emp
WHERE salary > 1500;
SELECT * from region;
ID NAME
---------- --------------------------------------------------
1 North America
2 South America
3 Africa / Middle East
4 Asia
5 Europe
1000 Velasquez --> tabel EMP
5000 Ropeburn --> tabel EMP
13000 Sedeghi --> tabel EMP
14000 Nguyen --> tabel EMP
ID NAME
---------- --------------------------------------------------
1 North America
2 South America
3 Africa / Middle East
4 Asia
5 Europe
1000 Velasquez --> tabel EMP
5000 Ropeburn --> tabel EMP
13000 Sedeghi --> tabel EMP
14000 Nguyen --> tabel EMP
Комментарий:
Конечно же, подзапрос не должен взимать данные из той таблицы, в которую записываем. Главное соотношение типов.
Комментариев нет :
Отправить комментарий