Database
 sql >> база данни >  >> RDS >> Database

Как да създадете временна таблица в SQL?

Как да създадете временна таблица в SQL

Въведение във временните таблици

  • Временната таблица е таблица, която се използва за съхраняване на временни данни, които могат да се използват допълнително в същата клиентска сесия.
  • По подразбиране временната таблица се премахва, след като клиентската сесия бъде прекратена.
  • Временната таблица може да бъде премахната изрично с помощта на израза „DROP TABLE“. Тази таблица е достъпна само за нейния създател.
  • В една и съща сесия могат да съществуват повече от една временна таблица, но те трябва да съдържат различни имена, ако са в една и съща сесия. Но ако временните таблици са в различна сесия, тогава таблиците могат да съществуват със същите имена.
  • Временните таблици могат да имат същото име като това на нормалните таблици в същата база данни. Ако такова условие съществува, тогава след създаването на временна таблица всички изпълнени заявки вече ще се препращат към временната таблица вместо към нормалната таблица. Но след като тази временна таблица, създадена със същото име, бъде премахната, нормалната таблица е достъпна и сега заявките ще се позовават на нормалната таблица.
  • Създаване на временна таблица

Синтаксис:

СЪЗДАВАНЕ НА ВРЕМЕННА ТАБЛИЦА ИМЕ НА ТАБЛИЦА (тип на данни_име на колона1 (размер), име на колона2 тип данни (размер), име на колонаN тип данни (размер));

Пример:

Вече имаме база данни с име „employeedb“ и таблица с име „employee“ в тази база данни. Сега ще създадем временна таблица със същото име „служител“.

 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) 
  • Сега създадохме нова таблица, наречена „служител“ в базата данни „employeedb“.
  • И така, точно след създаването на временна таблица, когато се опитваме да извлечем данните от таблицата на служителите, получихме празен набор от резултати. Това се случва, защото сега таблицата на служителите, посочена в заявката SELECT, препраща към новосъздадената временна таблица „employee“, а не към съществуващата таблица „employee“.
  • След това, когато изпълнихме заявката INSERT към таблицата на служителите, тогава тази заявка се изпълнява и върху временната таблица „служител“, защото изпълняваме тази заявка след създаването на временната таблица.
  • Изхвърлете временна таблица

Синтаксис:

DROP TABLE TABLENAME;

Пример:

Сега ще изтрием временна таблица, наречена „служител“.

 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) 
  • Когато изпълняваме заявката SELECT, получаваме два записа като изход, защото сме изпълнили тази заявка след създаване на временна таблица. И така, тази заявка SELECT се управлява от временната таблица.
  • След това изпълнихме заявката за отпадане. С помощта на командата DROP новосъздадената таблица на служителите (временна таблица) ще бъде премахната.
  • Отново, когато изпълним заявката SELECT, сега тя ще се управлява от нашата таблица на служителите (оригинална таблица), а не от временната таблица, тъй като временната таблица вече е премахната от базата данни.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Пълно присъединяване към SQL

  2. Забавление с компресия (columnstore) на много голяма маса – част 3

  3. SQL естествено присъединяване

  4. Развитието на информацията за контакт означава ли промяна на вашата база данни?

  5. Нивото на изолация, което може да се сериализира