Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Bagaimana Cara Membuat Tabel Sementara di SQL?

Cara Membuat Tabel Sementara di SQL

Pengantar Tabel Sementara

  • Tabel sementara adalah tabel yang digunakan untuk menyimpan data sementara yang dapat digunakan lebih lanjut dalam sesi klien yang sama.
  • Secara default, tabel sementara dihapus setelah sesi klien dihentikan.
  • Tabel sementara dapat dihapus secara eksplisit menggunakan pernyataan “DROP TABLE”. Tabel ini hanya dapat diakses oleh pembuatnya.
  • Lebih dari satu tabel sementara dapat ada di sesi yang sama tetapi tabel tersebut harus berisi nama yang berbeda jika berada di sesi yang sama. Tetapi jika tabel sementara berada di sesi yang berbeda, maka tabel tersebut dapat eksis dengan nama yang sama.
  • Tabel sementara dapat memiliki nama yang sama dengan nama tabel normal dalam database yang sama. Jika kondisi seperti itu ada, maka setelah pembuatan tabel sementara, semua kueri yang dieksekusi sekarang akan merujuk ke tabel sementara alih-alih tabel normal. Tetapi setelah tabel sementara yang dibuat dengan nama yang sama dihapus, tabel normal dapat diakses dan sekarang kueri akan merujuk ke tabel normal.
  • Membuat tabel Sementara

Sintaks:

BUAT NAMA TABEL SEMENTARA TABEL (nama_kolom1 tipe data (ukuran), nama_kolom2 tipe data (ukuran), nama_kolomN tipe data (ukuran));

Contoh:

Kami sudah memiliki database dengan nama “employeedb” dan tabel dengan nama “karyawan” di database itu. Sekarang kita akan membuat tabel sementara dengan nama yang sama “karyawan”.

 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) 
  • Sekarang kita telah membuat tabel baru bernama “employee” di database “employeedb”.
  • Jadi, setelah pembuatan tabel sementara ketika kami mencoba untuk mengambil data dari tabel karyawan, kami mendapatkan hasil yang kosong. Ini terjadi karena sekarang tabel karyawan yang ditentukan dalam kueri SELECT merujuk ke tabel "karyawan" sementara yang baru dibuat dan bukan tabel "karyawan" yang ada.
  • Setelah itu ketika kita mengeksekusi query INSERT pada tabel karyawan, maka query ini juga dioperasikan pada tabel sementara “karyawan” karena kita mengeksekusi query ini setelah pembuatan tabel sementara.
  • Lepaskan tabel sementara

Sintaks:

DROP TABLE TABLENAME;

Contoh:

Sekarang kita akan menghapus tabel sementara bernama “karyawan”.

 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) 
  • Saat kami menjalankan kueri SELECT, kami mendapatkan dua catatan sebagai output karena kami telah mengeksekusi kueri ini setelah pembuatan tabel sementara. Jadi, kueri SELECT ini dioperasikan pada tabel sementara.
  • Setelah itu kita mengeksekusi query drop. Menggunakan perintah DROP, tabel karyawan yang baru dibuat (tabel sementara) akan dihapus.
  • Sekali lagi, ketika kita mengeksekusi query SELECT, sekarang akan dioperasikan pada tabel karyawan kita (tabel asli) bukan tabel sementara karena tabel sementara sudah dihapus dari database.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tolong berhenti menggunakan anti-pola UPSERT ini

  2. Model Data Pengiriman Restoran

  3. Model Data Perpustakaan

  4. Pertandingan Terdekat, Bagian 1

  5. Menerjemahkan Data Tenaga Penjualan Ke Format EDI