Câu lệnh INSERT trong oracle là một lệnh DML (Ngôn ngữ thao tác dữ liệu). Nó được sử dụng để chèn các hàng mới vào bảng oracle trong cơ sở dữ liệu oracle
SyntaxINSERT INTO <table_name>
(col1, col2, ... column_n )
VALUES
(value1, value2, ... value_n );
Đây
tên_bảng :Bảng cần chèn các bản ghi mới
col1, col2 :là cột trong bảng
value1, value2…. :là các giá trị tương ứng với col1, col2… trong bảng
Chỉ một hàng được chèn với cú pháp này trong bảng
Giả sử bạn muốn nhập các bản ghi vào bảng EMP, sau đó
insert into emp (emp_id, emp_name,dept_id,first_name,last_name,salary)
values ('101','JOHN', 10,'JOHN' ,'ROGER', 3000);
Lưu ý quan trọng
- Không cần thiết phải cung cấp tên cột trong trường hợp bạn đang chỉ định các giá trị theo đúng thứ tự và giá trị cho mỗi cột trong bảng được cung cấp
- Bạn nên đặt dấu ngoặc kép xung quanh các giá trị ký tự.
Cách chèn giá trị Null vào bảng
Trong trường hợp chúng ta đặt giá trị null cho một vài cột, chúng ta có thể bỏ qua các cột trong lệnh insert
insert into emp (emp_id, emp_name,dept_id,salary)
values ('101','JOHN', 10, 3000);
Chèn bằng câu lệnh Chọn
Chúng ta cũng có thể chèn vào bảng bằng câu lệnh select
INSERT INTO <table_name>
(col1, col2, ... column_n ) select col1, col2, ... column_n from < table_name2>
Phương pháp này có thể được sử dụng để chèn vào nhiều hàng
- Chúng tôi không cần sử dụng mệnh đề giá trị ở đây
- Chúng tôi cần đối sánh cột trong phần chèn với truy vấn đã chọn để làm cho nó hoạt động
- Không cần thiết phải cung cấp tên cột trong trường hợp bạn đang chỉ định các giá trị theo đúng thứ tự và giá trị cho mỗi cột trong bảng được cung cấp
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;
Chèn hàm ngày trong bảng
Giả sử chúng ta có một cột kiểu dữ liệu ngày oracle trong bảng, thì chúng ta có thể sử dụng hàm sysdate để nhập ngày vào câu lệnh 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);
Hoặc nếu cần chỉ định ngày cụ thể, chúng ta có thể sử dụng định dạng chuẩn cho ngày ‘DD-MON-YYYY’.Với thời gian này được mặc định là nửa đêm
insert into emp (emp_id,emp_name,salary,hire_date) values ( '10','JOHN',1000, '18-AUG-2018');
hoặc nếu chúng ta cần nhập dữ liệu ở định dạng khác trong một thời gian, chúng ta có thể sử dụng hàm 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
Câu lệnh chèn tất cả của Oracle giúp chúng ta thêm nhiều hàng trong bảng trong một lần hoặc chúng ta có thể thêm nhiều hàng trong các bảng khác nhau với cùng một câu lệnh chèn
Cú pháp cho một bảng
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;
Cú pháp cho nhiều bảng
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;
Điều này tương đương với
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 )
Ví dụ
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;
chèn tất cả các câu lệnh cũng có thể được sử dụng theo cách dưới đây
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 ;
Có thể sử dụng câu lệnh điều kiện trong câu lệnh 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 ;
Tôi hy vọng bạn thích nội dung này trên câu lệnh chèn trong oracle. Tôi đã giải thích nhiều cách khác nhau để thực hiện các thao tác chèn trong bảng với nhiều ví dụ.
Các bài viết có liên quan
Câu lệnh cập nhật trong oracle:Chúng tôi sử dụng câu lệnh Cập nhật trong oracle để sửa đổi các hàng hiện có trong bảng oracle trong cơ sở dữ liệu oracle. Cập nhật có thể được thực hiện theo nhiều cách
Xóa khỏi bảng trong Oracle:Xóa khỏi bảng trong oracle được sử dụng để xóa các hàng. XÓA các hàng có thể được thực hiện bằng mệnh đề EXISTS / NOT EXISTS, bảng dựa trên truy vấn con, phân tầng
Cách thay đổi bảng trong Oracle:Bảng thay thế trong oracle được sử dụng để sửa đổi một cột, thả và thêm các ràng buộc, thay đổi kiểu dữ liệu của cột trong bảng, thay đổi các thông số lưu trữ bảng
Cách thay đổi bảng thêm oracle cột:Thông tin chi tiết hữu ích về Cách thay đổi bảng thêm oracle cột. Thông tin chi tiết về tính năng thêm cột nhanh được giới thiệu trong oracle 11g cũng được cung cấp
tài liệu Oracle về chèn