Database
 sql >> Baza danych >  >> RDS >> Database

Jak utworzyć tabelę tymczasową w SQL?

Jak utworzyć tabelę tymczasową w SQL

Wprowadzenie do tabel tymczasowych

  • Tabela tymczasowa to tabela służąca do przechowywania danych tymczasowych, które mogą być dalej używane w tej samej sesji klienta.
  • Domyślnie tabela tymczasowa jest usuwana po zakończeniu sesji klienta.
  • Tabela tymczasowa może zostać wyraźnie usunięta za pomocą instrukcji „DROP TABLE”. Ta tabela jest dostępna tylko dla jej twórcy.
  • W tej samej sesji może istnieć więcej niż jedna tabela tymczasowa, ale muszą one zawierać różne nazwy, jeśli znajdują się w tej samej sesji. Ale jeśli tabele tymczasowe znajdują się w innej sesji, mogą istnieć tabele o tych samych nazwach.
  • Tabele tymczasowe mogą mieć taką samą nazwę jak zwykłe tabele w tej samej bazie danych. Jeśli taki warunek istnieje, to po utworzeniu tabeli tymczasowej wszystkie wykonywane zapytania będą odnosić się do tabeli tymczasowej, a nie do normalnej. Ale kiedy ta tymczasowa tabela utworzona o tej samej nazwie zostanie usunięta, normalna tabela będzie dostępna i teraz zapytania będą odwoływać się do normalnej tabeli.
  • Tworzenie tymczasowego stołu

Składnia:

CREATE TEMPORARY TABLE TABLENAME (nazwa_kolumny1 typ danych (rozmiar), nazwa_kolumny2 typ danych (rozmiar), nazwa_kolumnyN typ danych (rozmiar));

Przykład:

Mamy już bazę danych o nazwie „employeedb” oraz tabelę o nazwie „pracownik” w tej bazie. Teraz utworzymy tabelę tymczasową o tej samej nazwie „pracownik”.

 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) 
  • Teraz utworzyliśmy nową tabelę o nazwie „pracownik” w bazie danych „pracownik”.
  • Zaraz po utworzeniu tabeli tymczasowej, gdy próbujemy pobrać dane z tabeli pracowników, otrzymaliśmy pusty zestaw wyników. Dzieje się tak, ponieważ teraz tabela pracowników określona w zapytaniu SELECT odwołuje się do nowo utworzonej tabeli tymczasowej „pracownik”, a nie do istniejącej tabeli „pracownik”.
  • Po tym, kiedy wykonaliśmy zapytanie INSERT w tabeli pracowników, to zapytanie jest również obsługiwane w tabeli tymczasowej „pracownik”, ponieważ wykonujemy to zapytanie po utworzeniu tabeli tymczasowej.
  • Upuść tabelę tymczasową

Składnia:

DROP TABLE TABLENAME;

Przykład:

Teraz usuniemy tymczasową tabelę o nazwie „pracownik”.

 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) 
  • Kiedy wykonujemy zapytanie SELECT, otrzymujemy dwa rekordy jako dane wyjściowe, ponieważ wykonaliśmy to zapytanie po utworzeniu tabeli tymczasowej. Zatem to zapytanie SELECT działa na tabeli tymczasowej.
  • Potem wykonaliśmy zapytanie upuszczające. Używając polecenia DROP, nowo utworzona tabela pracowników (tabela tymczasowa) zostanie usunięta.
  • Ponownie, kiedy wykonamy zapytanie SELECT, teraz będzie ono operowane na naszej tabeli pracowników (oryginalnej tabeli), a nie na tabeli tymczasowej, ponieważ tabela tymczasowa jest już usunięta z bazy danych.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pakiet hostingowy na Chocolatey

  2. Porównanie wydajności maszyny wirtualnej Windows Azure, część 2

  3. Tworzenie dynamicznej tabeli przestawnej z funkcją QUOTENAME

  4. Najlepsze oprogramowanie bazodanowe dla programistów (edycja 2022)

  5. Chmura Alibaba