SQL - Geçici Tablolar
Geçici Tablolar nelerdir?
Geçici tabloları destekleyen RDBMS vardır. Geçici Tablolar size izin veren harika bir özelliktir.store and process intermediate results tipik SQL Server tablolarıyla kullanabileceğiniz aynı seçim, güncelleme ve birleştirme yeteneklerini kullanarak.
Geçici tablolar, bazı durumlarda geçici verileri saklamak için çok yararlı olabilir. Geçici tablolar için bilinmesi gereken en önemli şey, mevcut istemci oturumu sona erdiğinde silinecek olmalarıdır.
Geçici tablolar MySQL 3.23 sürümünden itibaren mevcuttur. MySQL'in 3.23'ten daha eski bir sürümünü kullanıyorsanız, geçici tablolar kullanamazsınız, ancakheap tables.
Daha önce de belirtildiği gibi, geçici tablolar yalnızca oturum canlı olduğu sürece devam edecektir. Kodu bir PHP betiğinde çalıştırırsanız, betik yürütmeyi bitirdiğinde geçici tablo otomatik olarak yok edilir. MySQL veritabanı sunucusuna MySQL istemci programı aracılığıyla bağlanırsanız, geçici tablo siz istemciyi kapatana veya tabloyu manuel olarak yok edene kadar var olacaktır.
Misal
İşte size geçici bir tablonun kullanımını gösteren bir örnek.
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)
Bir SHOW TABLES komutu verdiğinizde, geçici tablonuz listede listelenmeyecektir. Şimdi, MySQL oturumunu kapatırsanız ve ardından bir SELECT komutu verirseniz, veritabanında hiçbir veri bulamazsınız. Geçici masanız bile mevcut olmayacak.
Geçici Tabloları Kaldırmak
Varsayılan olarak, veritabanı bağlantınız sonlandırıldığında tüm geçici tablolar MySQL tarafından silinir. Yine de bunları arada silmek istiyorsanız, bunu birDROP TABLE komut.
Aşağıda geçici bir masayı düşürme örneği verilmiştir.
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