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

Tạo bảng mới bằng cách chọn dữ liệu từ các bảng khác với TẠO BẢNG NHƯ

Bằng cách sử dụng câu lệnh thao tác dữ liệu SQL, một bảng mới, tạm thời, sao lưu hoặc thông thường có thể được tạo và điền hoặc chèn dữ liệu từ một bảng khác hoặc các bảng được truy xuất bởi câu lệnh SELECT. Ngôn ngữ thao tác dữ liệu SQL là CREATE TABLE AS có thể được sử dụng để tạo một bảng mới được xây dựng từ nội dung của kết quả được đặt bởi một truy vấn trên một bảng đã tồn tại trong cơ sở dữ liệu. Cả loại cột và dữ liệu hàng cho bảng mới đều đến từ lệnh SELECT được chỉ định bởi select.

CREATE TABLE AS có cú pháp hoặc tóm tắt sau ở dạng đơn giản:

CREATE TABLE new_table_name [ ( column [, ...] ) ] AS SELECT [ ( column [, ...] ) ] FROM existing table_name

Câu lệnh SELECT có thể ở dạng phức hợp trong đó dữ liệu được truy xuất từ ​​một số bảng. Đối với bảng mới, tên cột có thể được chỉ định bằng cách đưa tên cột vào danh sách được phân tách bằng dấu phẩy. Điểm rất quan trọng cần lưu ý là phải có cùng số cột được chỉ định trong danh sách cột trước mệnh đề AS (tùy chọn, nếu được chỉ định) cho bảng mới như số cột mục tiêu được trả về bởi câu lệnh select. Nếu danh sách tùy chọn các cột trong ngoặc đơn của bảng mới chứa số hàng khác với số hàng mà câu lệnh SELECT trả về, thông báo lỗi sau sẽ được hiển thị:

LỖI:CREATE TABLE / AS SELECT có số lượng cột không khớp

Ở dạng đơn giản nhất, câu lệnh CREATE TABLE AS sẽ tạo một bản sao lưu hoàn chỉnh của một bảng hiện có bao gồm tất cả các cột và dữ liệu chỉ bằng cách sử dụng câu lệnh:

CREATE TABLE new_table_name AS SELECT * FROM existing_table_name


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hàm MySQL CEILING () - Làm tròn đến số nguyên gần nhất

  2. Làm cách nào để thay đổi hành động tham chiếu khóa ngoại? (hành vi)

  3. CHỌN của chế độ xem chứa một truy vấn con trong mệnh đề FROM

  4. Mysql_insert_id có an toàn để sử dụng không?

  5. Điều đó có nghĩa là gì khi MySQL ở trạng thái Đang gửi dữ liệu?