Bu derste, MySQL geçici tabloları tartışacağız ve size geçici tabloları nasıl oluşturacağınızı, kullanacağınızı ve bırakacağınızı göstereceğiz.
MySQL geçici tablolar
MySQL’de geçici tablo, tek bir oturumda birkaç kez tekrar kullanabileceğiniz geçici sonuç kümesini saklamanıza izin veren özel bir tablo türüdür.
JOIN yan tümceleri ile tek bir SELECT ifadesi gerektiren verileri sorgulamak imkansız ya da pahalı olduğunda geçici bir tablo çok kullanışlıdır. Bu durumda, anında sonucu depolamak için geçici bir tablo kullanabilir ve işlemek için başka bir sorgu kullanabilirsiniz.
MySQL geçici tablosu aşağıdaki özel özelliklere sahiptir:
- CREATE TEMPORARY TABLE ifadesi kullanılarak geçici bir tablo oluşturulur. TEMPORARY anahtar sözcüğünün CREATE ve TABLE anahtar kelimelerinin arasına eklendiğine dikkat edin.
- Oturum sona erdiğinde veya bağlantı sonlandırıldığında MySQL geçici tabloyu otomatik olarak kaldırır. Elbette, artık kullanmadığınızda, geçici bir tabloyu açıkça kaldırmak için DROP TABLE deyimini kullanabilirsiniz.
- Geçici bir tablo yalnızca onu oluşturan istemci tarafından erişilebilir ve erişilebilir durumdadır. Farklı istemciler, aynı adı taşıyan geçici tabloları hataya neden olmadan oluşturabilir çünkü yalnızca geçici tabloyu oluşturan istemci bunu görebilir. Ancak, aynı oturumda, iki geçici tablo aynı adı paylaşamaz.
- Geçici bir tablo, bir veritabanındaki normal bir tabloyla aynı ada sahip olabilir. Örneğin, örnek veritabanında çalışanlar adlı geçici bir tablo oluşturursanız, mevcut çalışanlar tablosuna erişilemez hale gelir.
Geçici bir tablo, kalıcı bir tablo ile aynı isme sahip olsa bile, bu önerilmez. Çünkü bu bir karışıklığa yol açabilir ve potansiyel olarak beklenmeyen bir veri kaybına neden olabilir.
Örneğin, veritabanı sunucusuyla olan bağlantının kopması ve sunucuya otomatik olarak yeniden bağlanmanız durumunda, geçici tablo ile kalıcı tablo arasında ayrım yapamazsınız. Ardından, beklenmeyen geçici tablo yerine kalıcı tabloyu kaldırmak için bir DROP TABLE ifadesi yayınlayabilirsiniz.
MySQL TEMPORARY Table oluşturma
Geçici bir tablo oluşturmak için TEMPORARY anahtar sözcüğünü CREATE TABLE ifadesine eklemeniz yeterlidir.
Örnek : Aşağıdaki ifade, yaşlarına göre en genç ilk 10 öğrenciyi okudukları kitap sayıları ile birlikte geçici gecici_ilk10 adında bir tabloya kaydeden sorguyu gösterir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CREATE TEMPORARY TABLE gecici_ilk10 SELECT o.ogrno, o.ograd, o.ogrsoyad, o.sinif, o.dtarih, COUNT(i.islemno) as islem_sayisi FROM ogrenci o INNER JOIN islem i ON i.ogrno = o.ogrno GROUP BY o.ogrno ORDER BY dtarih DESC LIMIT 10; |
Şimdi, kalıcı bir tablodan sorgulama gibi gecici_ilk10 geçici tablosundaki verileri sorgulayabilirsiniz: Aşağıdaki sorgu geçici tablodaki 11A sınıfı öğrencileri öğrencilerini listeler.
1 2 3 4 | SELECT * FROM gecici_ilk10 WHERE sinif='11A' |
MySQL geçici tablosunu kaldırma
Geçici tabloları kaldırmak için DROP TABLE deyimini kullanabilirsiniz, ancak TEMPORARY anahtar sözcüğünü aşağıdaki gibi eklemek iyi bir uygulamadır:
1 2 3 | DROP TEMPORARY TABLE tablo_adi; |
DROP TEMPORARY TABLE ifadesi, kalıcı bir tabloyu değil yalnızca geçici bir tabloyu kaldırır. Geçici tablonuzu, kalıcı tablonun adıyla aynı şekilde adlandırırken kalıcı bir tablonun kaldırılması hatasını önlemenize yardımcı olur.
Örneğin, gecici_ilk10 geçici tablosunu kaldırmak için aşağıdaki ifadeyi kullanırsınız:
1 2 3 | DROP TEMPORARY TABLE gecici_ilk10; |
DROP TEMPORARY TABLE ifadesiyle kalıcı bir tabloyu kaldırmaya çalışırsanız, bırakmaya çalıştığınız tablonun bilinmediğini belirten bir hata mesajı alacağınıza dikkat edin.
Bağlantı havuzu oluşturma veya kalıcı bağlantılar kullanan bir uygulama geliştirirseniz, uygulamanız sona erdiğinde geçici tabloların otomatik olarak kaldırılması garanti edilmez.
Çünkü uygulamanın kullandığı veritabanı bağlantısı hala açık olabilir ve diğer istemcilerin kullanması için bir bağlantı havuzuna yerleştirilebilir. Bu nedenle, artık kullanmadığınızda geçici tabloları her zaman kaldırmak iyi bir uygulamadır.
Bu eğitimde, MySQL geçici tablolarını ve yeni bir geçici tablo oluşturma ve kaldırma gibi geçici tabloların nasıl yönetileceğini öğrendiniz.
Yorum Yap