Clip Bảng tạm trong SQL là gì - Lớp.VN

Thủ Thuật về Bảng tạm trong SQL là gì Mới Nhất

Hoàng Thị Hương đang tìm kiếm từ khóa Bảng tạm trong SQL là gì được Cập Nhật vào lúc : 2022-04-08 15:13:07 . Với phương châm chia sẻ Kinh Nghiệm về trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Tác giả lý giải và hướng dẫn lại nha.

Trong nội dung bài viết này Stanford – Dạy kinh nghiệm tay nghề lập trình sẽ hướng dẫn những bạn học cơ sở tài liệu SQL phương pháp tạo ra bảng tạm để mục tiêu tàng trữ tạm, xử lý tài liệu được thuận tiện và đơn giản khi cần.

Nội dung chính
    1. Sự khác lạ giữa 2 loại bảng tạm trong SQL Server2. Sử dụng để tạo ra bảng tạm trong SQL ServerVideo liên quan

1. Sự khác lạ giữa 2 loại bảng tạm trong SQL Server

Đối với SQL Server những bạn có 2 dạng bảng tạm đó là:

    Local temporary table: Sử dụng để tạo ra bảng tạm và tồn tại trong link của người tiêu dùng tạo ra bảng đó và sẽ bị huỷ khi ngắt link. Global temporary table: Sử dụng để tạo ra bảng tạm và tồn tại đến lúc nào tất cả những link đến cơ sở tài liệu thao tác đóng hết. Có thể sử dụng ở link của người tiêu dùng khác.

2. Sử dụng để tạo ra bảng tạm trong SQL Server

Để thực hiện tạo bảng tạm dạng local, những bạn học cơ sở tài liệu SQL cần thực hiện dòng lệnh sau và để ý quan tâm luôn nên phải có dấu # ở trước tên bảng:

Tạo bảng tài liệu tạm dạng global trong SQL Server như sau:

Sau khi tạo sau những bảng tạm để phục vụ cho việc tàng trữ tạm thời. Chúng ta hoàn toàn có thể thực hiện những lệnh truy vấn, thực thi với bảng tạm in như bảng thật thông thường trong SQL Server.

Hy vọng qua bài hướng dẫn này những bạn đã biết phương pháp tạo bảng tạm trong SQL Server để phục vụ việc làm của tớ. Bên cạnh đó những bạn muốn được đào tạo chuyên nghiệp về cơ sở tài liệu SQL cùng Chuyên Viên tay nghề cao Stanford hoàn toàn có thể tham khảo khoá học SQL tại đây: Khoá SQL Server

=============================
☎ STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963 723 236 – 0866 586 366
Website: https://stanford.com
Meta: ://bit.ly/2FN0TYb
Youtube: ://bit.ly/2TkKT7I

    Bắt đầu học cơ sở dữ liệu giúp bạn thăng tiến cao5 lý do bạn nên học SQL ngay hôm nayNhững bí kíp tối ưu SQL Server – trải nghiệm từ thực tế

Có nhiều RDBMS tương hỗ Bảng tạm (Temporary Table). Bảng tạm (Temporary Table) là một tính năng tuyệt vời giúp bạn lưu giữ và xử lý những kết quả trung gian bằng việc sử dụng những kĩ năng như chọn, update, phối hợp in như bạn hoàn toàn có thể sử dụng với những bảng điển hình trong SQL Server.

Bảng tạm (Temporary Table) hoàn toàn có thể rất hữu ích trong một số trong những trường hợp khi bạn muốn lưu giữ tài liệu tạm thời. Điều quan trọng nhất bạn cần nên biết về Bảng tạm (Temporary Table) là chúng hoàn toàn có thể bị xóa khi Client Session hiện tại kết thúc.

Bảng tạm (Temporary Table) là có sẵn từ MySQL phiên bản 3.23 trở đi. Nếu bạn sử dụng một phiên bản cũ hơn, bạn không thể sử dụng tính năng này, nhưng bạn hoàn toàn có thể sử dụng những Heap Table.

Như đã đề cập, bảng tạm sẽ chỉ tồn tại khi session là còn tồn tại. Nếu bạn chạy code trong PHP script, bảng tạm sẽ bị hủy tự động khi script kết thúc việc thực thi. Nếu bạn được link với MySQL Database thông qua chương trình MySQL Client, thì bảng tạm sẽ tồn tại tới khi bạn đóng Client hoặc hủy bảng.

Ví dụ

Ví dụ sau minh họa cách sử dụng của bảng tạm.

mysql> CREATE TEMPORARY TABLE DOANHTHU ( -> ten_san_pham VARCHAR(50) NOT NULL -> , tong_doanh_thu DECIMAL(12,2) NOT NULL DEFAULT 0.00 -> , gia_trung_binh DECIMAL(7,2) NOT NULL DEFAULT 0.00 -> , tong_so_luong INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO DOANHTHU -> (ten_san_pham, tong_doanh_thu, gia_trung_binh, tong_so_luong) -> VALUES -> ('iphone7', 30, 15, 2); mysql> SELECT * FROM DOANHTHU; +--------------+-------------+----------------+------------------+ | ten_san_pham | tong_doanh_thu | gia_trung_binh | tong_so_luong | +--------------+-------------+----------------+------------------+ | iphone7 | 30 | 15 | 2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec)

Khi bạn thông báo một lệnh SHOW TABLES, thì bảng tạm của bạn sẽ không được liệt kê trong list. Bây giờ, nếu bạn đăng xuất khỏi MySQL session và sau đó bạn thông báo một lệnh SELECT, thì bạn sẽ không thấy tài liệu nào có sẵn trong Database. Ngay khi đó, bảng tạm của bạn cũng tiếp tục không tồn tại.

Quảng cáo

Theo mặc định, tất cả bảng tạm bị xóa bởi MySQL khi link tới Database của bạn kết thúc. Nếu bạn vấn muốn xóa chúng, bạn thông báo một lệnh DROP TABLE.

Ví dụ sau minh họa cách xóa một bảng tạm trong SQL.

mysql> CREATE TEMPORARY TABLE DOANHTHU ( -> ten_san_pham VARCHAR(50) NOT NULL -> , tong_doanh_thu DECIMAL(12,2) NOT NULL DEFAULT 0.00 -> , gia_trung_binh DECIMAL(7,2) NOT NULL DEFAULT 0.00 -> , tong_so_luong INT UNSIGNED NOT NULL DEFAULT 0 ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO DOANHTHU -> (ten_san_pham, tong_doanh_thu, gia_trung_binh, tong_so_luong) -> VALUES -> ('iphone7', 30, 90, 2); mysql> SELECT * FROM DOANHTHU; +--------------+-------------+----------------+------------------+ | ten_san_pham | tong_doanh_thu | gia_trung_binh | tong_so_luong | +--------------+-------------+----------------+------------------+ | iphone7 | 30 | 15 | 2 | +--------------+-------------+----------------+------------------+ 1 row in set (0.00 sec) mysql> DROP TABLE DOANHTHU; mysql> SELECT * FROM DOANHTHU; ERROR 1146: Table 'VIETJACK.DOANHTHU' doesn't exist

Bảng tạm (temporary table) và biến kiểu bảng (table variable) là 2 phương tiện để lưu tài liệu tạm thời khi đang xử lý. Bảng tạm mang tên khởi đầu bằng dấu “#”, bạn hoàn toàn có thể tạo bảng tạm bằng lệnh CREATE TABLE và khai báo những cột của nó; hoặc bạn hoàn toàn có thể vừa tạo và thêm tài liệu vào bằng SELECT INTO. Với biến kiểu bảng thì bạn phải khai báo trước mới hoàn toàn có thể dùng được, và khi khai báo bạn phải định nghĩa những cột của nó:

--tạo bảng trực tiếp CREATE TABLE #t1 (C VARCHAR(50))   --vừa tạo bảng và thêm tài liệu vào SELECT C INTO #t2 FROM dbo.SomeTable   --khai báo biến kiểu bảng DECLARE @t TABLE(C VARCHAR(50)) INSERT INTO @t SELECT 1 SELECT * FROM @t

Bảng tạm khai báo ở trên gọi là bảng tạm cục bộ (local temp table), SQL Server còn đáp ứng bảng tạm toàn cục (global temp table) với tên khởi đầu bằng hai dấu “##”. Trong nội dung bài viết này khi nhắc tới bảng tạm là tôi chỉ nói về bảng tạm cục bộ, vì bạn sẽ đa phần dùng đến loại này.

Cả bảng tạm và biến kiểu bảng chỉ tồn tại trong phạm vi (scope) mà chúng được tạo. Khi bạn tạo chúng trong thủ tục, chúng sẽ tự động bị xóa sau khi thủ tục thực hiện xong. Nếu bạn tạo chúng trong đoạn SQL động bên trong thủ tục, chúng cũng khá được xóa sau khi đoạn SQL động thực hiện xong.

CREATE PROC dbo.p1 AS BEGIN    CREATE TABLE #t1(C VARCHAR(10))    INSERT INTO #t1 SELECT 'abc' END   EXEC dbo.p1 SELECT * FROM #t1 --lỗi, #t1 không tồn tại nữa CREATE PROC dbo.p2 AS BEGIN    DECLARE @SQL VARCHAR(1000)    SELECT @SQL = 'DECLARE @t TABLE(C VARCHAR(10))    INSERT INTO @t SELECT 1 '    EXEC(@SQL)    SELECT * FROM @t --lỗi, biến @t không tồn tại nữa END

Cả bảng tạm và biến kiểu bảng đều được lưu trong tempdb, chúng được lưu trong bộ nhớ khi có đủ chỗ và bị đẩy ra đĩa cứng khi thiết yếu. Vì thế việc truy xuất biến kiểu bảng không còn gì nhanh hơn so với bảng tạm.

Vì cả bảng tạm và biến kiểu bảng chỉ tồn tại trong phạm vi chúng được khai báo, nên tên của chúng cũng chỉ có ý nghĩa trong phạm vi đó. Nếu bạn mở hai hiên chạy cửa số trong Management Studio và ở cả hai hiên chạy cửa số bạn tạo bảng tạm mang tên #t, SQL Server sẽ không phàn nàn gì vì chúng thuộc hai phạm vi rất khác nhau (vì thế bảng tạm kiểu này gọi là bảng tạm cục bộ). Tương tự cùng một thủ tục được gọi đồng thời nhiều lần từ ứng dụng, dù thủ tục tạo cùng một tên bảng tạm nhưng mỗi lần gọi đều thuộc một phạm vi riêng nên không còn xung đột gì về tên bảng.

Về thực chất, SQL Server khi tạo bảng tạm trong tempdb sẽ thêm một chuỗi định danh vào tên bảng để đảm bảo nó duy nhất và chỉ phạm vi tạo bảng đó hoàn toàn có thể truy xuất được bảng này. Bạn hoàn toàn có thể xem những bảng tạm hiện có trong khối mạng lưới hệ thống bằng lệnh sau:

SELECT * FROM tempdb.INFORMATION_SCHEMA.tables ORDER BY TABLE_NAME

Ngoài những bảng tạm khối mạng lưới hệ thống, bạn sẽ thấy những bảng tạm do người tiêu dùng tạo với tên kiểu như “#t______A145G”.

Bạn hoàn toàn có thể truy vấn bảng tạm và biến kiểu bảng in như đối với bảng thông thường, bạn hoàn toàn có thể JOIN với chúng, dùng subquery… Bạn cũng hoàn toàn có thể INSERT, UPDATE, hoặc DELETE những bản ghi trong bảng tạm và biến kiểu bảng.

Đi vào rõ ràng hơn, bảng tạm và biến kiểu bảng có những đặc điểm khác lạ, và những đặc điểm này giúp bạn quyết định dùng cái nào thích hợp hơn.

• Bạn hoàn toàn có thể xóa (DROP TABLE) bảng tạm và tạo lại ngay trong cùng một thủ tục, nhưng bạn không thể làm như vậy với biến kiểu bảng, vì nó là một biến nó sẽ tồn tại đến khi thủ tục thực hiện xong.

• Bạn hoàn toàn có thể tạo index cho những cột của bảng tạm và tạo khóa primary key, unique key cho nó, nhưng bạn không thể làm vậy với biến kiểu bảng. Đây là ưu thế vượt trội của bảng tạm khi cần xử lý lượng tài liệu lớn và chạy những câu lệnh phức tạp. Chỉ có khóa ngoại là không được tạo trên bảng tạm (ở bản SQL 2008).

• Bạn hoàn toàn có thể TRUNCATE bảng tạm nhưng chỉ hoàn toàn có thể DELETE biến kiểu bảng. Khi cần xóa một lượng tài liệu lớn, bảng tạm sẽ có ưu thế hơn.

• Khi bạn có thủ tục cha gọi một thủ tục con, bảng tạm tạo trong thủ tục cha sẽ được nhìn thấy trong thủ tục con. Thủ tục con hoàn toàn có thể truy vấn và update tài liệu trong bảng này, và khi quay về thủ tục cha nó vẫn nhìn thấy tài liệu đã update. Đây là một cách hữu hiệu để trao đổi tài liệu Một trong những thủ tục. Ví dụ, tôi tạo hai thủ tục p1 và p2, và trong p1 tôi có lời gọi đến p2:

CREATE PROC dbo.p1 AS BEGIN           IF OBJECT_ID('tempdb..#t1') IS NOT NULL DROP TABLE #t1           CREATE TABLE #t1(i INT)           INSERT INTO #t1 SELECT 1           SELECT * FROM #t1 -- chỉ có một bản ghi insert bởi p1           EXEC p2           SELECT * FROM #t1 --có thêm bản ghi insert bởi p2 END go ALTER PROC dbo.p2 AS BEGIN           INSERT INTO #t1 SELECT 2      END   EXEC dbo.p1 -- nhận được 2 bản ghi

Kết quả của đoạn lệnh trên là 2 bản ghi insert bởi p1 và p2. Đối với biến kiểu bảng thì không làm được như vậy. Nếu không thấy biến được khai báo, thủ tục sẽ báo lỗi ngay từ khi biên dịch.

• Bảng tạm luôn kèm theo statistics là những thông tin trợ giúp việc tối ưu hóa thực hiện. Đây là một overhead khi sử dụng bảng tạm. Vì thế khi phương án thực thi tối ưu không phụ thuộc nhiều vào lượng tài liệu tạm, nói cách khác statistics của bảng tạm không còn công dụng gì, bạn nên dùng biến kiểu bảng.

• Khi viết hàm, vì hàm không được cho phép dùng bảng tạm nên bạn chỉ có một lựa chọn là biến kiểu bảng.

Nguồn: ://www.sqlviet.com/blog/bang-tam-va-bien-kieu-bang

[embed]https://www.youtube.com/watch?v=wx9aAk5cFHk[/embed]

Video Bảng tạm trong SQL là gì ?

Bạn vừa Read tài liệu Với Một số hướng dẫn một cách rõ ràng hơn về Review Bảng tạm trong SQL là gì tiên tiến nhất

Share Link Download Bảng tạm trong SQL là gì miễn phí

You đang tìm một số trong những Chia SẻLink Download Bảng tạm trong SQL là gì miễn phí.

Hỏi đáp thắc mắc về Bảng tạm trong SQL là gì

Nếu sau khi đọc nội dung bài viết Bảng tạm trong SQL là gì vẫn chưa hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Admin lý giải và hướng dẫn lại nha #Bảng #tạm #trong #SQL #là #gì - 2022-04-08 15:13:07
Post a Comment (0)
Previous Post Next Post