Příkaz INSERT v oracle je příkaz DML (Data Manipulation Language). Slouží k vkládání nových řádků do tabulek oracle v databázi oracle
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Zde
název_tabulky :Tabulka, do které je třeba vložit nové záznamy
col1,col2 :je sloupec v tabulkách
hodnota1,hodnota2…. :jsou hodnoty odpovídající col1,col2 …v tabulce
Do tabulky je vložen pouze jeden řádek s touto syntaxí
Předpokládejme, že chcete vložit záznamy do tabulky EMP, pak
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Důležitá poznámka
- Není nutné uvádět názvy sloupců v případě, že zadáváte hodnoty ve správném pořadí a je uvedena hodnota pro každý sloupec v tabulce
- Doporučuje se dávat hodnoty znaků do jednoduchých uvozovek.
Jak vložit hodnoty Null do tabulky
V případě, že do několika sloupců vkládáme hodnoty null, můžeme sloupce v příkazu insert vynechat
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Vložit pomocí příkazu Select
Do tabulky můžeme vkládat také příkazem select
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Tuto metodu lze použít pro vkládání do více řádků
- Tady nemusíme používat klauzuli hodnot
- Aby to fungovalo, potřebujeme přiřadit sloupec v insertu k výběrovému dotazu
- Není nutné uvádět názvy sloupců v případě, že zadáváte hodnoty ve správném pořadí a je uvedena hodnota pro každý sloupec v tabulce
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;
Vložit funkci data do tabulky
Předpokládejme, že máme v tabulce sloupec datového typu datatype Oracle, pak můžeme použít funkci sysdate k zadání data do příkazu insert
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);
Nebo pokud potřebujeme specifikovat konkrétní datum, můžeme použít standardní formát pro datum „DD-MON-YYYY“. S tímto výchozím časem je půlnoc
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
nebo pokud potřebujeme s časem zadat data v jiném formátu, můžeme použít funkci 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 insert all statement
Příkaz Oracle insert all nám pomáhá přidat více řádků do tabulky najednou, nebo můžeme přidat více řádků v různých tabulkách pomocí stejného příkazu insert
Syntaxe pro jednu tabulku
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;
Syntaxe pro více tabulek
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;
To je ekvivalentní s
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 )
Příklady
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 statement lze také použít níže uvedeným způsobem
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 ;
V příkazu insert all
je možné použít podmíněné příkazyinsert 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 ;
Doufám, že se vám tento obsah na příkazu insert v oracle líbí. Vysvětlil jsem různé způsoby, kterými lze v tabulkách provádět vkládání, na bohatých příkladech.
Související články
Příkaz Update v oracle:Příkaz Update v oracle používáme k úpravě existujících řádků v tabulce oracle v databázi oracle. Aktualizaci lze provést několika způsoby
Příkaz Delete from table v Oracle:Delete from the table v oracle se používá k odstranění řádků. DELETE řádky lze provést pomocí klauzule EXISTS/NOT EXISTS , tabulka založená na dílčím dotazu, kaskáda
Jak změnit tabulku v Oracle :Změna tabulky v oracle se používá k úpravě sloupce, zrušení a přidání omezení, změně datového typu sloupce tabulky, změňte parametry úložiště tabulky
Jak změnit tabulku přidání sloupce oracle:Užitečný náhled na Jak změnit tabulku přidání sloupce Oracle. Podrobnosti o funkci rychlého přidání sloupce představené v oracle 11g jsou také uvedeny
Dokumentace Oracle k vložce