Lưu truy vấn sql trong phpmyadmin
Nếu bảng đã tồn tại, chỉ cần sử dụng INSERT INTO dst_tbl SELECT * FROM src_tbl;3 INSERT INTO dst_tbl SELECT * FROM src_tbl;4. INSERT INTO dst_tbl SELECT * FROM src_tbl;2 để truy xuất các hàng trong đó. Nếu bảng chưa tồn tại, hãy sử dụng INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7. INSERT INTO dst_tbl SELECT * FROM src_tbl;2 để tạo nó một cách nhanh chóng từ kết quả INSERT INTO dst_tbl SELECT * FROM src_tbl;2 Show Máy chủ MySQL thường trả về kết quả của câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;2 cho máy khách đã đưa ra câu lệnh. Ví dụ: khi bạn đưa ra một câu lệnh từ bên trong chương trình mysql, máy chủ sẽ trả về kết quả cho mysql, từ đó hiển thị nó cho bạn trên màn hình. Cũng có thể lưu kết quả của câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;2 trong một bảng, điều này hữu ích theo một số cách
Phần này cho biết cách truy xuất một tập hợp kết quả vào một bảng. Tên bảng INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 và INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 trong các ví dụ lần lượt đề cập đến bảng nguồn mà từ đó các hàng được chọn và bảng đích mà chúng được lưu trữ Nếu bảng đích đã tồn tại, hãy sử dụng INSERT INTO dst_tbl SELECT * FROM src_tbl;3. INSERT INTO dst_tbl SELECT * FROM src_tbl;2 để sao chép tập kết quả vào đó. Ví dụ: nếu INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 chứa cột số nguyên INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';7 và cột chuỗi INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';8, thì câu lệnh sau sao chép các hàng từ INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 vào INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3, gán cột INSERT INTO dst_tbl SELECT * FROM src_tbl;81 thành INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';7 và cột INSERT INTO dst_tbl SELECT * FROM src_tbl;83 thành INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';8 INSERT INTO dst_tbl SELECT * FROM src_tbl;2 Số cột được chèn phải khớp với số cột đã chọn và sự tương ứng giữa các tập hợp cột được thiết lập theo vị trí thay vì tên. Trong trường hợp đặc biệt muốn sao chép tất cả các cột từ bảng này sang bảng khác, bạn có thể rút gọn câu lệnh về dạng này INSERT INTO dst_tbl SELECT * FROM src_tbl; Để chỉ sao chép một số hàng nhất định, hãy thêm mệnh đề INSERT INTO dst_tbl SELECT * FROM src_tbl;85 để chọn các hàng đó INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%'; Câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;2 cũng có thể tạo ra các giá trị từ các biểu thức. Ví dụ: câu lệnh sau đếm số lần mỗi tên xuất hiện trong INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 và lưu trữ cả số lần đếm và tên trong INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 INSERT INTO dst_tbl SELECT * FROM src_tbl;8 Nếu bảng đích không tồn tại, trước tiên bạn có thể tạo bảng đó bằng câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7, sau đó sao chép các hàng vào đó bằng câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;3. INSERT INTO dst_tbl SELECT * FROM src_tbl;2. Tùy chọn thứ hai là sử dụng INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7. INSERT INTO dst_tbl SELECT * FROM src_tbl;2, tạo bảng đích trực tiếp từ kết quả của INSERT INTO dst_tbl SELECT * FROM src_tbl;2. Ví dụ, để tạo INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 và sao chép toàn bộ nội dung của INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 vào đó, hãy làm điều này INSERT INTO dst_tbl SELECT * FROM src_tbl;0 MySQL tạo các cột trong INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 dựa trên tên, số và loại của các cột trong INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2. Nếu bạn chỉ muốn sao chép một số hàng nhất định, hãy thêm mệnh đề INSERT INTO dst_tbl SELECT * FROM src_tbl;85 thích hợp. Để tạo một bảng trống, hãy sử dụng mệnh đề INSERT INTO dst_tbl SELECT * FROM src_tbl;85 luôn sai INSERT INTO dst_tbl SELECT * FROM src_tbl;5 Để chỉ sao chép một số cột, hãy đặt tên cho những cột bạn muốn trong phần INSERT INTO dst_tbl SELECT * FROM src_tbl;2 của câu lệnh. Ví dụ: nếu INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 chứa các cột INSERT INTO dst_tbl SELECT * FROM src_tbl;55, INSERT INTO dst_tbl SELECT * FROM src_tbl;56, INSERT INTO dst_tbl SELECT * FROM src_tbl;57 và INSERT INTO dst_tbl SELECT * FROM src_tbl;58, bạn chỉ có thể sao chép INSERT INTO dst_tbl SELECT * FROM src_tbl;56 và INSERT INTO dst_tbl SELECT * FROM src_tbl;58 như thế này INSERT INTO dst_tbl SELECT * FROM src_tbl;4 Để tạo các cột theo thứ tự khác với thứ tự mà chúng xuất hiện trong bảng nguồn, hãy đặt tên cho chúng theo thứ tự mong muốn. Nếu bảng nguồn chứa các cột INSERT INTO dst_tbl SELECT * FROM src_tbl;55, INSERT INTO dst_tbl SELECT * FROM src_tbl;56 và INSERT INTO dst_tbl SELECT * FROM src_tbl;57, nhưng bạn muốn chúng xuất hiện trong bảng đích theo thứ tự INSERT INTO dst_tbl SELECT * FROM src_tbl;57, INSERT INTO dst_tbl SELECT * FROM src_tbl;55 và INSERT INTO dst_tbl SELECT * FROM src_tbl;56, hãy làm điều này INSERT INTO dst_tbl SELECT * FROM src_tbl;1 Để tạo các cột bổ sung trong bảng đích bên cạnh những cột được chọn từ bảng nguồn, hãy cung cấp các định nghĩa cột thích hợp trong phần INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7 của câu lệnh. Câu lệnh sau đây tạo INSERT INTO dst_tbl SELECT * FROM src_tbl;49 dưới dạng cột INSERT INTO dst_tbl SELECT * FROM src_tbl;10 trong INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';3 và thêm các cột INSERT INTO dst_tbl SELECT * FROM src_tbl;55, INSERT INTO dst_tbl SELECT * FROM src_tbl;56 và INSERT INTO dst_tbl SELECT * FROM src_tbl;57 từ INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 INSERT INTO dst_tbl SELECT * FROM src_tbl;1 Bảng kết quả chứa bốn cột theo thứ tự INSERT INTO dst_tbl SELECT * FROM src_tbl;49, INSERT INTO dst_tbl SELECT * FROM src_tbl;55, INSERT INTO dst_tbl SELECT * FROM src_tbl;56, INSERT INTO dst_tbl SELECT * FROM src_tbl;57. Các cột đã xác định được gán giá trị mặc định của chúng. Điều này có nghĩa là INSERT INTO dst_tbl SELECT * FROM src_tbl;49, là một cột INSERT INTO dst_tbl SELECT * FROM src_tbl;10, sẽ được gán các số thứ tự liên tiếp bắt đầu từ một. (Xem Tạo Cột Trình tự và Tạo Giá trị Trình tự. ) Nếu bạn lấy các giá trị của cột từ một biểu thức, bạn nên cung cấp bí danh để đặt tên cho cột. Giả sử rằng INSERT INTO dst_tbl SELECT * FROM src_tbl WHERE val > 100 AND name LIKE 'A%';2 chứa thông tin hóa đơn liệt kê các mặt hàng trong mỗi hóa đơn. Sau đó, câu lệnh sau đây sẽ tạo một bản tóm tắt của từng hóa đơn có tên trong bảng, cùng với tổng chi phí của các mặt hàng trong đó. Cột thứ hai bao gồm một bí danh vì tên mặc định của một biểu thức là chính biểu thức đó, đây là một tên khó sử dụng sau này INSERT INTO dst_tbl SELECT * FROM src_tbl;9 INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7. INSERT INTO dst_tbl SELECT * FROM src_tbl;2 cực kỳ tiện lợi, nhưng nó có một số hạn chế. Những điều này chủ yếu xuất phát từ thực tế là thông tin có sẵn từ một tập hợp kết quả không rộng như những gì bạn có thể chỉ định trong một câu lệnh INSERT INTO dst_tbl SELECT * FROM src_tbl;6 INSERT INTO dst_tbl SELECT * FROM src_tbl;7. Ví dụ: nếu bạn lấy một cột trong bảng từ một biểu thức, thì MySQL không biết liệu cột đó có được lập chỉ mục hay không hoặc giá trị mặc định của nó là gì. Nếu điều quan trọng là đưa thông tin này vào bảng đích, hãy sử dụng các kỹ thuật sau
|