sql >> Database teknologi >  >> RDS >> Database

Hvordan opretter man en midlertidig tabel i SQL?

Sådan opretter du en midlertidig tabel i SQL

Introduktion til midlertidige tabeller

  • Midlertidig tabel er en tabel, der bruges til at gemme midlertidige data, som kan bruges videre i den samme klientsession.
  • Som standard fjernes den midlertidige tabel, når klientsessionen er afsluttet.
  • Midlertidig tabel kan fjernes eksplicit ved at bruge sætningen "DROP TABLE". Denne tabel er kun tilgængelig for dens skaber.
  • Mere end én midlertidig tabel kan eksistere i samme session, men de skal indeholde forskellige navne, hvis de er i samme session. Men hvis de midlertidige tabeller er i en anden session, kan tabellerne eksistere med de samme navne.
  • Midlertidige tabeller kan have samme navn som normale tabeller i den samme database. Hvis en sådan betingelse eksisterer, vil alle de udførte forespørgsler efter oprettelsen af ​​den midlertidige tabel nu referere til den midlertidige tabel i stedet for den normale tabel. Men når først denne midlertidige tabel oprettet med samme navn er fjernet, er den normale tabel tilgængelig, og nu vil forespørgslerne referere til den normale tabel.
  • Oprettelse af en midlertidig tabel

Syntaks:

OPRET MIDLERTIDIG TABEL TABLENAME (kolonne_navn1 datatype (størrelse), kolonnenavn2 datatype (størrelse), kolonnenavnN datatype (størrelse));

Eksempel:

Vi har allerede en database med navnet "employeedb" og en tabel med navnet "employee" i den database. Nu vil vi oprette en midlertidig tabel med samme navn "medarbejder".

 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) 
  • Nu har vi oprettet en ny tabel med navnet "medarbejder" i databasen "medarbejderb".
  • Så lige efter oprettelsen af ​​den midlertidige tabel, når vi forsøger at hente dataene fra medarbejdertabellen, fik vi et tomt resultatsæt. Dette sker, fordi medarbejdertabellen angivet i SELECT-forespørgslen nu refererer til den nyoprettede midlertidige tabel "medarbejder" og ikke den eksisterende tabel "medarbejder".
  • Da vi derefter udførte INSERT-forespørgslen på medarbejdertabellen, bliver denne forespørgsel også udført på den midlertidige tabel "medarbejder", fordi vi udfører denne forespørgsel efter den midlertidige tabeloprettelse.
  • Slip en midlertidig tabel

Syntaks:

DROP TABLE TABLENAME;

Eksempel:

Nu vil vi slette en midlertidig tabel med navnet "medarbejder".

 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) 
  • Når vi udfører SELECT-forespørgslen, får vi to poster som output, fordi vi har udført denne forespørgsel efter midlertidig tabeloprettelse. Så denne SELECT-forespørgsel betjenes på den midlertidige tabel.
  • Derefter har vi udført drop-forespørgslen. Ved at bruge DROP-kommandoen vil nyoprettet medarbejdertabel (midlertidig tabel) blive slettet.
  • Igen, når vi udfører SELECT-forespørgslen, vil den nu blive betjent på vores medarbejdertabel (oprindelige tabel) og ikke den midlertidige tabel, fordi den midlertidige tabel allerede er fjernet fra databasen.


  1. PDO med INSERT INTO gennem udarbejdede erklæringer

  2. PostgreSQL midlertidige tabeller

  3. Beskæftiger sig med dato og klokkeslæt i stedet for datetime

  4. 5 måder at tælle antallet af brugerdefinerede tabeller i en SQL Server-database