SQL - Temporary Tables: A Beginner's Guide
Xin chào các nhà pháp sư SQL tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của các bảng tạm thời. Đừng lo lắng nếu bạn là người mới bắt đầu lập trình; tôi sẽ là người hướng dẫn thân thiện của bạn, và chúng ta sẽ khám phá chủ đề này từng bước một. Nào, hãy lấy một tách cà phê và cùng nhau nhảy vào!
What are Temporary Tables? (Những gì là bảng tạm thời?)
Hãy tưởng tượng bạn đang tổ chức một bữa tiệc lớn (vì ai lại không yêu thích một buổi tiệc cơ sở dữ liệu phải không?). Bạn cần một nơi để lưu trữ danh sách khách mời, nhưng bạn không muốn giữ nó mãi mãi. Đó chính xác là những gì bảng tạm thời trong SQL - chúng là những không gian lưu trữ ngắn hạn cho dữ liệu của bạn.
Bảng tạm thời là các đối tượng cơ sở dữ liệu tồn tại tạm thời trong phiên làm việc của bạn. Chúng vô cùng hữu ích khi bạn cần lưu trữ kết quả trung gian hoặc chia nhỏ các truy vấn phức tạp thành các bước đơn giản hơn. Điều tốt nhất? Chúng tự động biến mất khi phiên của bạn kết thúc, vì vậy bạn không cần phải lo lắng về việc dọn dẹp!
Creating Temporary Tables in MySQL (Tạo bảng tạm thời trong MySQL)
Bây giờ, hãy c rolled up our sleeves và tạo bảng tạm thời đầu tiên của chúng ta trong MySQL. Cú pháp rất đơn giản:
CREATE TEMPORARY TABLE table_name (
column1 datatype,
column2 datatype,
...
);
Giả sử chúng ta đang lên kế hoạch cho bữa tiệc mà tôi đã đề cập trước đó. Chúng ta sẽ tạo một bảng tạm thời để lưu trữ danh sách khách mời:
CREATE TEMPORARY TABLE party_guests (
guest_id INT AUTO_INCREMENT PRIMARY KEY,
guest_name VARCHAR(50),
rsvp_status VARCHAR(20)
);
Trong ví dụ này:
- Chúng ta đang tạo một bảng tạm thời có tên
party_guests
. - Nó có ba cột:
guest_id
(tự động tăng),guest_name
, vàrsvp_status
. -
guest_id
được đặt là khóa chính để đảm bảo mỗi khách mời có một标识符 duy nhất.
Bây giờ chúng ta đã có bảng của mình, hãy thêm một số khách mời:
INSERT INTO party_guests (guest_name, rsvp_status)
VALUES
('Alice', 'Confirmed'),
('Bob', 'Maybe'),
('Charlie', 'Not Responding');
Tuyệt vời! Chúng ta vừa thêm ba khách mời vào bảng tạm thời của mình. Hãy kiểm tra danh sách khách mời:
SELECT * FROM party_guests;
Truy vấn này sẽ hiển thị tất cả các khách mời mà chúng ta đã thêm cho đến nay. Dễ dàng phải không?
Dropping Temporary Tables in MySQL (Xóa bảng tạm thời trong MySQL)
Sau khi bữa tiệc kết thúc (và nào là một bữa tiệc!), chúng ta có thể muốn loại bỏ danh sách khách mời. Trong thuật ngữ SQL, chúng ta gọi điều này là "xóa" bảng. Dưới đây là cách bạn làm:
DROP TEMPORARY TABLE IF EXISTS party_guests;
Câu lệnh IF EXISTS
là một mạng an toàn. Nó ngăn chặn lỗi nếu bạn cố gắng xóa một bảng không tồn tại. Luôn tốt hơn là an toàn hơn hối tiếc trong thế giới cơ sở dữ liệu!
Temporary Tables in SQL Server (Bảng tạm thời trong SQL Server)
Bây giờ, hãy sang SQL Server. Quá trình này tương tự, nhưng có một số khác biệt quan trọng:
- Trong SQL Server, bảng tạm thời bắt đầu với ký tự #.
- Có hai loại: bảng tạm thời cục bộ ( với một #) và bảng tạm thời toàn cục ( với hai ##).
Hãy tạo một bảng tạm thời cục bộ cho kế hoạch tổ chức tiệc của chúng ta trong SQL Server:
CREATE TABLE #party_guests (
guest_id INT IDENTITY(1,1) PRIMARY KEY,
guest_name VARCHAR(50),
rsvp_status VARCHAR(20)
);
Chú ý đến ký tự #
trước tên bảng? Đó là cách SQL Server biết rằng đó là một bảng tạm thời. IDENTITY(1,1)
là cách SQL Server tự động tăng guest_id
.
Thêm khách mời cũng hoạt động theo cùng một cách:
INSERT INTO #party_guests (guest_name, rsvp_status)
VALUES
('David', 'Confirmed'),
('Eve', 'Maybe'),
('Frank', 'Not Responding');
Để xem danh sách khách mời:
SELECT * FROM #party_guests;
Và khi bữa tiệc kết thúc, chúng ta có thể xóa bảng:
DROP TABLE IF EXISTS #party_guests;
When to Use Temporary Tables (Khi nào nên sử dụng bảng tạm thời)
Bảng tạm thời giống như một cây kéo đa năng trong thế giới SQL. Chúng linh hoạt và có thể rất hữu ích trong nhiều tình huống khác nhau:
-
Truy vấn phức tạp: Khi bạn có một truy vấn dài và phức tạp, bạn có thể chia nhỏ nó thành các bước nhỏ hơn bằng cách sử dụng bảng tạm thời.
-
Cải thiện hiệu suất: Đôi khi, việc sử dụng bảng tạm thời có thể làm cho các truy vấn của bạn chạy nhanh hơn, đặc biệt là khi làm việc với các bộ dữ liệu lớn.
-
Thao tác dữ liệu: Nếu bạn cần thực hiện nhiều thao tác trên một tập dữ liệu con, lưu trữ nó trong một bảng tạm thời có thể hiệu quả hơn so với việc liên tục truy vấn bảng chính.
-
Kiểm tra và gỡ lỗi: Bảng tạm thời rất hữu ích cho việc kiểm tra truy vấn hoặc lưu trữ kết quả trung gian khi bạn đang khắc phục sự cố.
Best Practices for Using Temporary Tables (Các nguyên tắc tốt nhất khi sử dụng bảng tạm thời)
Như với bất kỳ công cụ mạnh mẽ nào, việc sử dụng bảng tạm thời một cách khôn ngoan rất quan trọng. Dưới đây là một số lời khuyên từ những năm dạy SQL của tôi:
-
Dọn dẹp sau khi sử dụng: Mặc dù bảng tạm thời biến mất khi phiên của bạn kết thúc, nhưng vẫn nên xóa chúng khi bạn đã hoàn thành.
-
Chú ý đến cách đặt tên: Sử dụng tên rõ ràng và mô tả cho bảng tạm thời. Tương lai bạn sẽ cảm ơn bạn hiện tại!
-
Đừng lạm dụng: Mặc dù bảng tạm thời rất hữu ích, nhưng không sử dụng chúng khi một subquery hoặc CTE có thể thực hiện công việc tương tự.
-
Lưu ý phạm vi: Nhớ rằng bảng tạm thời cục bộ (#) chỉ可见 đến phiên hiện tại, trong khi bảng tạm thời toàn cục (##) có thể được thấy bởi tất cả các phiên.
Conclusion (Kết luận)
Và thế là bạn đã có nó, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của bảng tạm thời, từ MySQL đến SQL Server. Nhớ rằng, giống như bất kỳ buổi tiệc nào, bảng tạm thời là về thời gian - chúng có mặt khi bạn cần và biến mất khi bạn không cần nữa.
Trong hành trình SQL của bạn, bạn sẽ tìm thấy越来越多的用途 cho các bảng tạm thời này. Chúng giống như những người bạn cool trong buổi tiệc cơ sở dữ liệu - luôn sẵn sàng giúp đỡ và không bao giờ overstaying their welcome.
Tiếp tục thực hành, giữ vững sự tò mò, và trước khi bạn biết điều đó, bạn sẽ trở thành linh hồn của buổi tiệc SQL! Chúc các bạn may mắn trong việc lập mã, các nhà dữ liệu tương lai!
Phương thức | Mô tả | Cú pháp (MySQL) | Cú pháp (SQL Server) |
---|---|---|---|
Tạo | Tạo một bảng tạm thời | CREATE TEMPORARY TABLE table_name (...) | CREATE TABLE #table_name (...) |
Chèn | Thêm dữ liệu vào bảng | INSERT INTO table_name VALUES (...) | INSERT INTO #table_name VALUES (...) |
Chọn | Xem dữ liệu trong bảng | SELECT * FROM table_name | SELECT * FROM #table_name |
Xóa | Xóa bảng tạm thời | DROP TEMPORARY TABLE IF EXISTS table_name | DROP TABLE IF EXISTS #table_name |
Credits: Image by storyset