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

Làm thế nào để tạo bảng tạm thời trong SQL?

Cách tạo bảng tạm thời trong SQL

Giới thiệu về Bảng tạm thời

  • Bảng tạm thời là bảng được sử dụng để lưu trữ dữ liệu tạm thời có thể được sử dụng thêm trong cùng một phiên khách hàng.
  • Theo mặc định, bảng tạm thời sẽ bị xóa sau khi phiên khách hàng kết thúc.
  • Bảng tạm thời có thể được xóa một cách rõ ràng bằng cách sử dụng câu lệnh “ DROP TABLE”. Chỉ người tạo ra bảng này mới có thể truy cập được.
  • Nhiều bảng tạm thời có thể tồn tại trong cùng một phiên nhưng chúng phải chứa các tên khác nhau nếu chúng ở trong cùng một phiên. Nhưng nếu các bảng tạm thời nằm trong phiên khác nhau thì các bảng có thể tồn tại với tên giống nhau.
  • Các bảng tạm thời có thể có cùng tên với tên của các bảng bình thường trong cùng một cơ sở dữ liệu. Nếu điều kiện như vậy tồn tại, thì sau khi tạo bảng tạm thời, tất cả các truy vấn được thực thi bây giờ sẽ tham chiếu đến bảng tạm thời thay vì bảng bình thường. Nhưng khi bảng tạm thời được tạo có cùng tên này bị xóa, bảng bình thường có thể truy cập được và giờ đây, các truy vấn sẽ tham chiếu đến bảng bình thường.
  • Tạo bảng Tạm thời

Cú pháp:

TẠO BẢNG TẠM THỜI TABLENAME (kiểu dữ liệu column_name1 (kích thước), kiểu dữ liệu column_name2 (kích thước), kiểu dữ liệu column_nameN (kích thước));

Ví dụ:

Chúng tôi đã có một cơ sở dữ liệu với tên “Employeedb” và một bảng có tên “Nhân viên” trong cơ sở dữ liệu đó. Bây giờ, chúng ta sẽ tạo một bảng tạm thời có cùng tên "nhân viên".

 mysql> USE employeedb;
 Database changed
 mysql> CREATE TEMPORARY TABLE employee(Emp_ID INT, Emp_Name VARCHAR(20),Emp_Salary INT);
 Query OK, 0 rows affected (0.32 sec)
 mysql> SELECT *FROM employee;
 Empty set (0.00 sec)
 mysql> INSERT INTO employee VALUES(1,"Mayuri",45000);
 Query OK, 1 row affected (0.08 sec)
 mysql> INSERT INTO employee VALUES(2,"Sakshi",50000);
 Query OK, 1 row affected (0.04 sec)
 mysql> SELECT *FROM employee;
 +--------+----------+------------+
 | Emp_ID | Emp_Name | Emp_Salary |
 +--------+----------+------------+
 |      1 | Mayuri   |      45000 |
 |      2 | Sakshi   |      50000 |
 +--------+----------+------------+
 2 rows in set (0.00 sec) 
  • Bây giờ chúng tôi đã tạo một bảng mới có tên là "nhân viên" trong cơ sở dữ liệu "Employeedb".
  • Vì vậy, ngay sau khi tạo bảng tạm thời khi chúng tôi đang cố gắng truy xuất dữ liệu từ bảng nhân viên, chúng tôi đã nhận được tập kết quả trống. Điều này xảy ra vì bây giờ bảng nhân viên được chỉ định trong truy vấn SELECT đang tham chiếu đến bảng tạm thời mới được tạo “nhân viên” chứ không phải bảng hiện có “nhân viên”.
  • Sau đó, khi chúng tôi thực hiện truy vấn CHÈN trên bảng nhân viên, thì truy vấn này cũng được thực hiện trên bảng tạm thời “nhân viên” vì chúng tôi đang thực hiện truy vấn này sau khi tạo bảng tạm thời.
  • Bỏ một bảng tạm thời

Cú pháp:

DROP TABLE TABLENAME;

Ví dụ:

Bây giờ chúng tôi sẽ xóa một bảng tạm thời có tên là “nhân viên”.

 mysql> SELECT *FROM employee;
 +--------+----------+------------+
 | Emp_ID | Emp_Name | Emp_Salary |
 +--------+----------+------------+
 |      1 | Mayuri   |      45000 |
 |      2 | Sakshi   |      50000 |
 +--------+----------+------------+
 2 rows in set (0.00 sec)
 mysql> DROP TABLE employee;
 Query OK, 0 rows affected (0.08 sec)
 mysql> SELECT *FROM employee;
 +--------+----------+------------+
 | Emp_ID | Emp_Name | Emp_Salary |
 +--------+----------+------------+
 |      1 | Mayuri   | 40000      |
 |      2 | Mayuri   | 40000      |
 |      3 | Mayuri   | 40000      |
 |      4 | Mayuri   | 40000      |
 |      5 | Mayuri   | 40000      |
 +--------+----------+------------+
 5 rows in set (0.09 sec) 
  • Khi chúng tôi thực hiện truy vấn SELECT, chúng tôi nhận được hai bản ghi làm đầu ra vì chúng tôi đã thực hiện truy vấn này sau khi tạo bảng tạm thời. Vì vậy, truy vấn SELECT này được vận hành trên bảng tạm thời.
  • Sau đó, chúng tôi đã thực hiện truy vấn thả. Sử dụng lệnh DROP, bảng nhân viên mới tạo (bảng tạm thời) sẽ bị xóa.
  • Một lần nữa, khi chúng tôi thực hiện truy vấn SELECT, bây giờ nó sẽ được vận hành trên bảng nhân viên của chúng tôi (bảng gốc) chứ không phải bảng tạm thời vì bảng tạm thời đã bị xóa khỏi cơ sở dữ liệu.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Công nghệ JPA của Java là gì?

  2. Nhóm người theo dõi - 3 trường hợp sử dụng chính để đồng bộ hóa triển khai SQL &NoSQL

  3. Mô hình dữ liệu cho ứng dụng đặt lịch hẹn khám bệnh

  4. Làm thế nào để đổi tên một tên cột trong SQL?

  5. Thói quen xấu:Chỉ tập trung vào dung lượng ổ đĩa khi chọn phím