Giới thiệu CTAS
Trong các RDBMS như Oracle, PostgreSQL, nếu bạn muốn tạo ra 1 bảng copy của 1 bảng khác, giải pháp là CREATE TABLE AS SELECT (CTAS)
Tạo một bảng copy của 1 bảng khác
Cú pháp:
create table <table mới> as select * from <table gốc>
VD: Giả sử tôi muốn tạo ra một bảng khach_hang_bk với cấu trúc và dữ liệu giống hệt bảng khach_hang , tôi thực hiện câu lệnh như sau:
$ create table khach_hang_bk as select * from khach_hang; CREATE TABLE
Tạo một bảng mới với cấu trúc giống hệt bảng gốc
Bây giờ, tôi muốn tạo ra 1 bảng mới với cấu trúc giống hệt bảng gốc, nhưng lại là bảng trống, không có dữ liệu. Với 1 chút sáng tạo, tôi sẽ thực hiện việc đó cũng bằng câu lệnh CTAS
create table khach_hang_bk as select * from khach_hang where 1=0;
Trong đó: Điều kiện 1=0 trả về FALSE, tức là không có dữ liệu nào từ bảng khach_hang được lấy ra, chỉ có cấu trúc của khach_hang được tạo ra.
Tạo một bảng mới với 1 phần dữ liệu từ bảng gốc
Tương tự như vậy, tôi có thể chỉ tạo ra 1 bảng với 1 phần dữ liệu từ bảng gốc.
Giả sử: Tôi muốn tạo ra một bảng khach_hang_bk, trong đó, dữ liệu lấy từ bảng customer với điều kiện ngay_tham_gia = 2019
create table khach_hang_bk as select * from khach_hang where ngay_tham_gia = 2019;
Copy dữ liệu từ một bảng sang 1 bảng khác có cùng cấu trúc
Tình huống tiếp theo là, tôi cần copy 1 phần dữ liệu từ bảng khach_hang sang bảng khach_hang_bk đã tạo trước đó. Tôi sẽ làm như sau:
insert into khach_hang_bk as select * from khach_hang where ngay_tham_gia = 2020;
Nguồn: https://dangxuanduy.com/
Hiện tại, tôi có tổ chức đều đặn các khóa học về quản trị Oracle Database.
Tôi sẽ để thông tin ở đây để bạn nào quan tâm về lịch học cũng như chương trình học có thể theo dõi nhé.
KHÓA HỌC: QUẢN TRỊ ORACLE DATABASE THẬT LÀ ĐƠN GIẢN Xem ngay!
Hãy tham gia group “Kho tài liệu kiến thức database” để cùng học hỏi và chia sẻ nhé.