Инструкцията INSERT в oracle е команда DML (език за манипулиране на данни). Използва се за вмъкване на нови редове в таблиците на Oracle в базата данни на Oracle
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Тук
име_на_таблица :Таблица, където трябва да се вмъкнат нови записи
col1,col2 :е колоната в таблиците
стойност1,стойност2…. :са стойностите, съответстващи на col1,col2 …в таблицата
Само един ред е вмъкнат с този синтаксис в таблицата
Да предположим, че искате да въведете записи в таблицата EMP, след това
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Важна забележка
- Не е необходимо да давате имена на колони, в случай че посочвате стойностите в правилния ред и е предоставена стойност за всяка колона в таблицата
- Препоръчително е да поставите единични кавички около стойностите на знаците.
Как да вмъкна нулеви стойности в таблица
В случай, че поставяме нулеви стойности за няколкото колони, можем да пропуснем колоните в командата за вмъкване
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Вмъкване с помощта на оператор Select
Можем да вмъкнем и в таблицата, като използваме оператор select
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Този метод може да се използва за вмъкване в няколко реда
- Не е необходимо да използваме клауза за стойности тук
- Трябва да съпоставим колоната във вмъкването със заявката за избор, за да работи
- Не е необходимо да давате имена на колони, в случай че посочвате стойностите в правилния ред и е предоставена стойност за всяка колона в таблицата
Example insert into emp_master (emp_id ,salary) select emp_id ,salary from emp; INSERT INTO emp_master (emp_id ,salary) WITH sal AS ( SELECT 201,5000 FROM dual UNION ALL SELECT 201, 10000 FROM dual UNION ALL SELECT 204, 10004 FROM dual UNION ALL SELECT 7, 5675476 FROM dual ) SELECT * FROM sal;
Вмъкване на функция за дата в таблицата
Да предположим, че имаме колона с тип данни за оракул дата в таблицата, тогава можем да използваме функцията sysdate, за да въведете датата в инструкцията за вмъкване
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, sysdate); insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, sysdate -1);
Или ако трябва да посочим конкретната дата, можем да използваме стандартния формат за датата „ДД-ПОН-ГГГГ“. С този час по подразбиране е полунощ
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
или ако трябва да въведем данни в различен формат с известно време, можем да използваме функцията to_date
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, TO_DATE('2018/08/18 01:02:44', 'yyyy/mm/dd hh24:mi:ss'));
Oracle вмъкване на всички изрази
Oracle insert all statement ни помага да добавим няколко реда в таблицата наведнъж или можем да добавим няколко реда в различни таблици със същия израз за вмъкване
Синтаксис за една таблица
INSERT ALL INTO
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;
Синтаксис за множество таблици
INSERT ALL INTO
<table_name1> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name2> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
<table_name3> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
SELECT * FROM dual;
Това е еквивалентно на
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n );
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
INSERT INTO <table_name> (col1, col2, ... column_n ) VALUES (value1, value2, ... value_n )
Примери
insert all into
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('102','SMITH', 10,'JOHN' ,'ROGER', 3000)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;
insert all into
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('101','JOHN', 10,'JOHN' ,'ROGER', 2000)
dept (dept_no, dept_name,dept_location) values ('20','BILLING', 'NEWYORK)
emp (emp_id, emp_name,dept_id,first_name,last_name,salary) values ('103','BILL', 10,'JOHN' ,'ROGER', 4000)
SELECT * FROM dual;
вмъкване на всички изрази също може да се използва по следния начин
insert all INTO emp (emp_id, emp_name,dept_id,salary) values (id,name, dept_no, sal) INTO dept (dept_no, dept_name,dept_location) values (dept_no,dept_name,location) WITH names AS ( SELECT 4 id, 'John' name,10 dept_no,'LABOUR' dept_name,'INDIA' location, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 dept_no,'FIRE' dept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 dept_no,'HEALTH' dept_name,'INDIA' location, 5600 sal FROM dual UNION ALL SELECT 8 id, 'bill' name,40 dept_no,'WATER' dept_name,'INDIA' location, 158750 sal FROM dual ) SELECT * FROM names ;
Възможно е да се използват условни изрази във вмъкване на всички изрази
insert all WHEN 1=1 THEN INTO emp (emp_id, emp_name,dept_id,salary) values (id,name, dept_no, sal) WHEN dept_no IS NOT NULL THEN dept (dept_no, dept_name,dept_location) values (dept_no,dept_name,location) WITH names AS ( SELECT 4 id, 'John' name,10 dept_no,'LABOUR' dept_name,'INDIA' location, 45000 sal FROM dual UNION ALL SELECT 5 id, 'Mac' name,20 dept_no,'FIRE' dept_name,'INDIA' location, 567000 sal FROM dual UNION ALL SELECT 6 id, 'Ruth' name,30 dept_no,'HEALTH' dept_name,'INDIA' location, 5600 sal FROM dual UNION ALL SELECT 8 id, 'bill' name,40 dept_no,'WATER' dept_name,'INDIA' location, 158750 sal FROM dual SELECT 9 id, 'July' name,NULL dept_no,NULL dept_name,NULL location, 158750 sal FROM dual ) SELECT * FROM names ;
Надявам се да ви хареса това съдържание на изявлението за вмъкване в oracle. Обясних различни начини, по които вмъкванията могат да се изпълняват в таблиците с достатъчно примери.
Сродни статии
Изявление за актуализиране в oracle:Ние използваме изявлението Update в oracle, за да модифицираме съществуващите редове в таблицата на oracle в базата данни на oracle. Актуализацията може да се изпълни по няколко начина
Изтриване от таблицата в Oracle:Изтриване от таблицата в Oracle се използва за изтриване на редовете. DELETE редове може да се направи с помощта на клауза EXISTS/NOT EXISTS, таблица, базирана на подзаявка, каскада
Как да променяте таблицата в Oracle:Промяната на таблицата в oracle се използва за промяна на колона, пускане и добавяне на ограничения, промяна на типа данни от колоната на таблицата, променете параметрите за съхранение на таблицата
Как да промените оракул за добавяне на колона в таблицата:Полезна информация за това как да промените оракул за добавяне на таблица в колона. Подробности за функцията за колона за бързо добавяне, въведена в oracle 11g, също са дадени
Документация на Oracle за вмъкване