Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Cách tạo một bảng từ một bảng khác trong SQL

Vấn đề:

Bạn muốn tạo một bảng mới với dữ liệu được sao chép từ một bảng khác.

Ví dụ:

Cơ sở dữ liệu của chúng tôi có một bảng có tên product với dữ liệu trong các cột sau:id (khóa chính), name , categoryprice .

id name danh mục price
105 hoa hồng hoa 5,70
108 bàn đồ nội thất 120,00
115 hoa tulip hoa 6,50
123 hoa hướng dương hoa 7,50
145 guitar âm nhạc 300,00
155 hoa lan hoa 9,50
158 sáo âm nhạc 156,00

Trong cơ sở dữ liệu, hãy tạo một bảng mới có tên florist sẽ lưu trữ các cột sau:id , nameprice . Các cột này đến từ bảng product nhưng chỉ từ danh mục hoa .

Điều quan trọng cần lưu ý là chúng tôi đang tạo một bảng mới. Bảng florist không tồn tại trong cơ sở dữ liệu này.

Cấu trúc TẠO BẢNG NHƯ CHỌN

Để tạo một bảng mới từ một bảng khác, bạn có thể sử dụng CREATE TABLE AS SELECT . Cấu trúc này là SQL tiêu chuẩn. Xem mã SQL bên dưới:

Giải pháp 1:

CREATE TABLE florist 
AS SELECT
  *
FROM product
WHERE category = ’flower’;

Đây là kết quả của truy vấn:

id name danh mục price
105 hoa hồng hoa 5,70
115 hoa tulip hoa 6,50
123 hoa hướng dương hoa 7,50
155 hoa lan hoa 9,50

Sử dụng CREATE TABLE , bạn có thể tạo một bảng mới bằng cách sao chép dữ liệu từ một bảng khác. Trong trường hợp này, trước tiên chúng ta sử dụng CREATE TABLE mệnh đề có tên cho bảng mới (trong ví dụ của chúng tôi:florist ), tiếp theo chúng ta viết ASSELECT truy vấn với tên của các cột (trong ví dụ của chúng tôi:* ), và sau đó chúng tôi viết FROM theo sau là tên của bảng mà từ đó dữ liệu được thu thập (trong ví dụ của chúng tôi:product ). Sau đó, bạn có thể sử dụng bất kỳ mệnh đề SQL nào:WHERE , GROUP BY , HAVING , v.v.

Bảng mới florist sẽ chứa định nghĩa của các cột từ product bảng (id , name , categoryprice ). Số lượng hàng được giới hạn bằng cách sử dụng mệnh đề WHERE, lọc các bản ghi để chỉ truy xuất dữ liệu từ danh mục hoa .

Cấu trúc CHỌN VÀO

Một giải pháp khác là sử dụng SELECT INTO . Cú pháp này không phải là SQL chuẩn, nhưng nó được hỗ trợ bởi nhiều cơ sở dữ liệu phổ biến.

Giải pháp 2:

SELECT  
  id,
  name,
  price
INTO florist
FROM product
WHERE category=’flower’;

Đây là kết quả:

id name price
105 hoa hồng 5,70
115 hoa tulip 6,50
123 hoa hướng dương 7,50
155 hoa lan 9,50

Thảo luận:

Nếu bạn muốn tạo một bảng mới dựa trên cấu trúc và dữ liệu từ một bảng khác, bạn có thể sử dụng SELECT INTO mệnh đề. Đầu tiên, hãy viết một SELECT theo sau là một danh sách các cột (trong ví dụ của chúng tôi:id , nameprice ) từ bảng hiện có (trong ví dụ của chúng tôi:product ).

Lưu ý rằng có nhiều cột hơn trong bảng product . Chúng tôi chỉ chọn những cột mà chúng tôi quan tâm.

Tiếp theo, sử dụng từ khóa INTO với tên của bảng mới mà bạn muốn tạo (trong ví dụ của chúng tôi:florist ). Sau đó, viết từ khóa FROM với tên của bảng hiện có (trong ví dụ của chúng tôi:product ).

Nếu bạn muốn chọn các hàng đã lọc từ bảng, hãy sử dụng WHERE mệnh đề. Sau WHERE , viết các điều kiện để lọc dữ liệu (trong ví dụ của chúng tôi:WHERE category=’flower’ ).

Trong ví dụ này, chúng tôi đang tạo một bảng mới florist có ít cột hơn bảng product (sự khác biệt là danh mục cột). Bảng mới này cũng có ít hàng hơn - chỉ những hàng có danh mục hoa .

Tất nhiên, nếu bạn muốn tạo một bảng bằng cách sử dụng tất cả các cột trong bảng khác, bạn có thể sử dụng * thay vì liệt kê các cột sau SELECT . Xem ví dụ bên dưới:

Giải pháp 2:

SELECT  
  *
INTO florist
FROM product
WHERE category=’flower’;

Đây là kết quả:

id name danh mục price
105 hoa hồng hoa 5,70
115 hoa tulip hoa 6,50
123 hoa hướng dương hoa 7,50
155 hoa lan hoa 9,50

Sử dụng SELECT INTO là một cách dễ dàng để tạo một bảng mới dựa trên một bảng hiện có trong cơ sở dữ liệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối SAS JMP với Salesforce.com

  2. 0 đến 60:Chuyển sang các điểm kiểm tra gián tiếp

  3. Khôi phục bản sao cơ sở dữ liệu của bạn

  4. SQL, Xử lý các ô trống

  5. SQL khóa ngoại:Mọi thứ bạn cần biết về hoạt động khóa ngoại