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

Cách tạo bảng từ truy vấn SQL

Vấn đề:

Bạn muốn tạo một bảng mới trong cơ sở dữ liệu với dữ liệu được xác định bởi truy vấn SQL.

Ví dụ:

Chúng tôi muốn tạo bảng gamer dựa trên một truy vấn SQL. Trong truy vấn này, chúng tôi chọn dữ liệu từ một bảng khác có tên championship được trình bày bên dưới.

id game thủ điểm Championship_date
1 alice 14 2020-08-10
2 giám sát viên 10 2020-09-28
3 happyman 0 2020-08-10
4 lukas 6 2020-08-10
5 oli 12 2020-08-10
6 lớn hơn 7 2020-09-12

Trong cơ sở dữ liệu, hãy tạo một bảng mới có tên gamer sẽ lưu trữ dữ liệu trong tất cả các cột được xác định trong bảng championship (id , gamer , scorechampionship_date ).

Giải pháp 1:

CREATE TABLE gamer 
AS  
SELECT
  *
FROM championship;

Thảo luận:

Nếu bạn muốn tạo một bảng mới, bước đầu tiên là sử dụng CREATE TABLE mệnh đề và tên của bảng mới (trong ví dụ của chúng tôi:gamer ). Sau đó, sử dụng AS từ khóa và cung cấp một SELECT câu lệnh chọn dữ liệu cho bảng mới. Trong ví dụ của chúng tôi, chúng tôi đã chọn tất cả các cột từ bảng championship bằng cách sử dụng dấu hoa thị (*). Tập kết quả hiển thị tất cả các bản ghi trong bảng championship .

Tuy nhiên, nếu bạn muốn tạo một bảng chỉ với một tập hợp con của các bản ghi, bạn có thể chỉ định truy vấn đã chọn như trong ví dụ bên dưới.

Giải pháp 2:

CREATE TABLE gamer 
AS  
SELECT
  gamer, score, championship_date
FROM championship 
WHERE championship_date <= 2020-08-10;

Đây là tập hợp kết quả:

game thủ điểm Championship_date
alice 14 2020-08-10
happyman 0 2020-08-10
lukas 6 2020-08-10
oli 12 2020-08-10

SELECT truy vấn chỉ truy xuất các bản ghi có championship_date ngày bằng hoặc cũ hơn 2020-08-10 (WHERE championship_date <= 2020-08-10 ). Bảng mới lưu trữ ít cột hơn trong ví dụ trước (SELECT gamer, score, championship_date ) không có cột id .

Một giải pháp tương tự cho vấn đề này là sử dụng SELECT INTO mệnh đề để tạo một bảng mới và sao chép dữ liệu từ một bảng khác. Hãy xem mã:

Giải pháp 3:

SELECT
  gamer, score, championship_date
INTO gamer
FROM championship 
WHERE championship_date <= 2020-08-10;

Bảng kết quả là giống nhau. Lưu ý rằng cấu trúc này không có trong tiêu chuẩn SQL. Trong lệnh SQL này, trước tiên chúng ta viết SELECT , sau đó là danh sách các cột, tiếp theo là từ khóa INTO , và cuối cùng là tên của bảng mới mà chúng ta muốn tạo. Tiếp theo, bạn có thể thêm WHERE và các mệnh đề SQL khác như GROUP BY hoặc HAVING để lọc các bản ghi cho bảng mới.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mẹo về hiệu suất XML

  2. Quản lý bản sao MS SQL của bạn

  3. 7 công việc hàng đầu yêu cầu SQL

  4. Các tính năng không được dùng nữa để đưa ra khỏi hộp công cụ của bạn - Phần 2

  5. Cách tìm Bản ghi với NULL trong một cột