Instrukcja INSERT w Oracle to polecenie DML (język manipulacji danymi). Służy do wstawiania nowych wierszy do tabel Oracle w bazie danych Oracle
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Tu
nazwa_tabeli :tabela, w której należy wstawić nowe rekordy
col1,col2 :to kolumna w tabelach
wartość1,wartość2…. :są wartościami odpowiadającymi col1,col2 …w tabeli
W tabeli wstawiono tylko jeden wiersz o tej składni
Załóżmy, że chcesz wprowadzić rekordy w tabeli EMP, a następnie
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Ważna uwaga
- Nie jest konieczne podawanie nazw kolumn na wypadek, gdy podajesz wartości we właściwej kolejności, a wartość dla każdej kolumny w tabeli jest podana
- Zaleca się umieszczanie pojedynczych cudzysłowów wokół wartości znaków.
Jak wstawić wartości Null do tabeli
Jeśli wstawiamy wartości null dla kilku kolumn, możemy pominąć kolumny w poleceniu wstawiania
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Wstaw za pomocą instrukcji Select
Możemy wstawić do tabeli również za pomocą instrukcji select
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Ta metoda może być używana do wstawiania do wielu wierszy
- Nie musimy tutaj używać klauzuli wartości
- Musimy dopasować kolumnę we wstawce do zapytania wybierającego, aby działało
- Nie jest konieczne podawanie nazw kolumn na wypadek, gdy podajesz wartości we właściwej kolejności, a wartość dla każdej kolumny w tabeli jest podana
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;
Wstaw funkcję daty do tabeli
Załóżmy, że mamy w tabeli kolumnę typu danych oracle date, a następnie możemy użyć funkcji sysdate, aby wprowadzić datę w instrukcji 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);
Lub jeśli musimy określić konkretną datę, możemy użyć standardowego formatu daty „DD-PON-RRRR”. Tym razem domyślnie jest północ
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
lub jeśli za jakiś czas musimy wprowadzić dane w innym formacie, możemy użyć funkcji 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 wstaw wszystkie oświadczenie
Instrukcja Oracle INSERT ALL pomaga nam dodać wiele wierszy w tabeli za jednym razem lub możemy dodać wiele wierszy w różnych tabelach za pomocą tej samej instrukcji INSERT
Składnia dla jednej tabeli
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;
Składnia dla wielu tabel
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;
Jest to odpowiednik
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 )
Przykłady
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;
wstaw wszystkie wyrażenia mogą być również użyte w następujący sposób
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 ;
Możliwe jest użycie instrukcji warunkowych w instrukcji insert all
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 ;
Mam nadzieję, że podoba Ci się ta treść w instrukcji insert w Oracle. Wyjaśniłem różne sposoby wstawiania w tabelach na wielu przykładach.
Powiązane artykuły
Oświadczenie Update w Oracle:Używamy instrukcji Update w Oracle, aby zmodyfikować istniejące wiersze w tabeli Oracle w bazie danych Oracle. Aktualizację można wykonać na wiele sposobów
Delete from table statement in Oracle:Delete from the table in oracle służy do usuwania wierszy. DELETE wiersze można wykonać za pomocą klauzuli EXISTS/NOT EXISTS , tabeli opartej na podzapytaniu, kaskadowo
Jak zmienić tabelę w Oracle:Zmiana tabeli w Oracle służy do modyfikowania kolumny, upuszczania i dodawania ograniczeń, zmiany typu danych kolumny tabeli, zmień parametry przechowywania tabeli
Jak zmienić wyrocznię dodawania kolumn do tabeli:Przydatny wgląd w Jak zmienić wyrocznię dodawania kolumn do tabeli. Szczegóły dotyczące funkcji szybkiego dodawania kolumn wprowadzonej w Oracle 11g są również podane
Dokumentacja Oracle dotycząca wstawiania