SQL - Tabel Sementara
Apa itu Tabel Sementara?
Ada RDBMS, yang mendukung tabel sementara. Tabel Sementara adalah fitur hebat yang memungkinkan Andastore and process intermediate results dengan menggunakan kapabilitas pemilihan, perbarui, dan gabung yang sama yang bisa Anda gunakan dengan tabel SQL Server pada umumnya.
Tabel sementara bisa sangat berguna dalam beberapa kasus untuk menyimpan data sementara. Hal terpenting yang harus diketahui untuk tabel sementara adalah tabel tersebut akan dihapus ketika sesi klien saat ini berakhir.
Tabel sementara tersedia di MySQL versi 3.23 dan seterusnya. Jika Anda menggunakan versi MySQL yang lebih lama dari 3.23, Anda tidak dapat menggunakan tabel sementara, tetapi Anda dapat menggunakanheap tables.
Seperti yang dinyatakan sebelumnya, tabel sementara hanya akan bertahan selama sesi tersebut hidup. Jika Anda menjalankan kode dalam skrip PHP, tabel sementara akan dihancurkan secara otomatis ketika skrip selesai dijalankan. Jika Anda terhubung ke server database MySQL melalui program klien MySQL, tabel sementara akan ada sampai Anda menutup klien atau menghancurkan tabel secara manual.
Contoh
Berikut adalah contoh yang menunjukkan penggunaan tabel sementara.
mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
-> product_name VARCHAR(50) NOT NULL
-> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
-> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
-> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO SALESSUMMARY
-> (product_name, total_sales, avg_unit_price, total_units_sold)
-> VALUES
-> ('cucumber', 100.25, 90, 2);
mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber | 100.25 | 90.00 | 2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
Ketika Anda mengeluarkan perintah SHOW TABLES, maka tabel sementara Anda tidak akan dicantumkan dalam daftar. Sekarang, jika Anda keluar dari sesi MySQL dan kemudian mengeluarkan perintah SELECT, Anda tidak akan menemukan data yang tersedia di database. Bahkan tabel sementara Anda tidak akan ada.
Menjatuhkan Tabel Sementara
Secara default, semua tabel sementara dihapus oleh MySQL ketika koneksi database Anda diakhiri. Masih jika Anda ingin menghapusnya di antaranya, Anda dapat melakukannya dengan menerbitkan fileDROP TABLE perintah.
Berikut ini adalah contoh tentang menghapus tabel sementara.
mysql> CREATE TEMPORARY TABLE SALESSUMMARY (
-> product_name VARCHAR(50) NOT NULL
-> , total_sales DECIMAL(12,2) NOT NULL DEFAULT 0.00
-> , avg_unit_price DECIMAL(7,2) NOT NULL DEFAULT 0.00
-> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0
);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO SALESSUMMARY
-> (product_name, total_sales, avg_unit_price, total_units_sold)
-> VALUES
-> ('cucumber', 100.25, 90, 2);
mysql> SELECT * FROM SALESSUMMARY;
+--------------+-------------+----------------+------------------+
| product_name | total_sales | avg_unit_price | total_units_sold |
+--------------+-------------+----------------+------------------+
| cucumber | 100.25 | 90.00 | 2 |
+--------------+-------------+----------------+------------------+
1 row in set (0.00 sec)
mysql> DROP TABLE SALESSUMMARY;
mysql> SELECT * FROM SALESSUMMARY;
ERROR 1146: Table 'TUTORIALS.SALESSUMMARY' doesn't exist