Gündelik hayatta yaptığımız iş dolayısıyla kimi zaman pek çok iş yükünü de beraberinde yaşıyoruz. Özellikle dijital alanlarda çalışan birçok birey, düzenleme, değiştirme ve silme gibi en basit işlemleri bile manuel yaparak günlerini kaybedebiliyor. İşte bu yazımızda sizlere günler kazandıracak en pratik SQL sorgularını derledik. Faydalı olması dileğiyle.
SQL’de Bir Sütunu Komple Temizlemek
Bazen bir web sitesi üzerinde yaptığımız birçok değişiklik SQL tablosunda aşırı bir yük oluşmasına sebep olabilir. SQL veritabanı tablolarında yaşanan şişkinlik, web sitesi üzerindeki sorguları da yavaşlatarak kullanıcı deneyimini olumsuz etkileyebiliyor. Bunun önüne geçmek için o tabloda yer alan ister tüm veriyi ister sadece belli sütunu silmek için aşağıdaki SQL sorgusunu çalıştırabilirsiniz.
Sadece Tablo İçini temizlemek İçin:
delete from TABLO_ADI
Tablo İçindeki Bir Sütunu Temizlemek İçin:
delete SUTUN_ADI from TABLO_ADI
Tablo İçindeki Bir Sütunun Belli Bir Tarihten Öncesini Silmek İçin:
delete from TABLO_ADI where SUTUN_ADI < '2020-08-11';
Tablo İçindeki Bir Sütunun Belli Bir Tarihten Sonrasını Silmek İçin:
delete from TABLO_ADI where SUTUN_ADI > '2020-08-11';
SQL’de Veri Güncellemek
Aşağıdaki listede sizler için SQL’de bir tabloda veya bir sütunda toplu veri güncelleme yapabileceğiniz sorguları paylaştık. Bu sorguları dilediğiniz gibi biçimlendirip kullanabilirsiniz.
Tablodaki Tüm Verileri Güncellemek İçin:
update TABLO_ADI
Tablodaki Bir Sütunun Verilerini Güncellemek İçin:
update SUTUN_ADI from TABLO_ADI
Tablodaki Bir Sütuna Yeni Veriler Atamak İçin:
update TABLO_ADI set SUTUN_ADI = 'Atanacak Veri';
Buradaki “set” komutuyla tablomuzda yer alan sütundaki tüm veriye bu değeri aktarmış oluyoruz.
Tablodaki Verileri Güncellerken Koşul Eklemek İçin;
Örneğin bir tablomuzda yer alan sütunların bir kısmının değeri “A” olarak kalmış ve biz bu “A” olan değerleri “B” olarak değiştirmek, ama diğer hiçbir satırda değişiklik yapmak istemiyoruz. O zaman bu sorguyu kullanacağız:
update TABLO_ADI set SUTUN_ADI = 'B' where SUTUN_ADI = 'A';
Bu sorguda demek istiyoruz ki benim tablomdaki sütunlarımı “B” olarak güncelle ancak sadece sütünlarımda “A” gördüklerini “B” olarak güncelle.
SQL’de Yazı İçeriğini Güncellemek
Diyelim ki bir sitemizde 2019 yılıyla ilgili binlerce içerik paylaştık ve yıl oldu 2020. Peki ne yapıyoruz? Tek tek her yazıya girip 2019 yazan yerleri 2020 mi yapıyoruz? Elbette hayır! Bu işlem için de harika bir SQL sorgumuz mevcut. “Replace” komutunu kullanarak dilediğimiz içeriği güncelleyebiliyoruz.
update TABLO_ADI set SUTUN_ADI = replace( SUTUN_ADI , '2019', '2020');
Bu sorguyu WordPress gibi hazır sistemlerde çalıştırırken dikkatli olmalısınız. Çünkü WordPress gibi sistemler bazen post metalarına, görsel metalarına da rakamlar atamaktadır. Bu durumda tüm o metalarda yer alan “2019” rakamlarını da “2020” yapmış olursunuz ve metalarınız çalışmaz. Örneğin diyelim ki WordPress sitenizde yazı içerisindeki “2019” olan yerleri “2020” olarak değiştirmek ancak diğer hiçbir alan değişmesin istiyoruz. O zaman sorgumuza yeni bir koşul ekliyoruz.
update wp_posts set post_content = replace( post_content, '2019', '2020') where post_type = 'post';
Bu sorgumuzda demiş olduk ki wp_posts tablosunda post_content yani yazıların ve sayfaların contentindeki 2019 olanları 2020 yap ve sonuna da koşul ekleyerek post_type = ‘post’ yani post tipi sadece yazı olanlarda (sayfaları hariç bıraktık) güncelle.
SQL’de Tekrar Eden Satırları Silme
Kimi zaman kopyaladığımız içerikler yüzünden ya da sonradan eklediğimiz aynı içerikler sebebiyle SQL tablolarımızda yinelenen mükerrer kayıtlar oluşur. Bu kayıtları tespit edip temizlemek için sorgumuzu çalıştırabilirsiniz.
Delete From TABLO_ADI Where ID Not In ( Select MAX(ID) From TABLO_ADI Group By ID )
SQL’de Rastgele Bir Şeyi Aramak
Kimi zaman aramak istediğimiz şeyin tam adını, başında ve sonunda ne olduğunu hatırlayamayız. İşte burada devreye “LIKE” komutu giriyor. Sorgumuzda LIKE kullanarak aradığımız kelime öbeğinin başında ve sonunda ne olduğuna bakmaksızın sadece bu kelime öbeğinin geçtiği tüm alanları göstermiş oluyoruz.
select * from TABLO_ADI where SUTUN_ADI like '%aranankelime%';
Bu sorgumuzda kullandığımız “%” işaretleri, başında ve sonunda ne olduğuna bakmaksızın bu söz öbeğinin geçtiği her şeyi getir demek.
SQL’de Yeni Tablo Oluşturmak
Veritabanımızda manuel uğraşmak yerine pratik bir komutla yeni tablo ve sütunlar oluşturmak için aşağıdaki sorguyu kullanabilirsiniz.
create_table TABLO_ADI (SUTUN1 INT, SUTUN2 varchar(255), SUTUN3 varchar(255))
SQL’de Şu Anın Saat ve Tarihini Kaydetmek
Herhangi bir çalışmanızda SQL’e o anın zaman ve gününü post etmek ve kaydetmek istiyorsanız NOW(); işinizi görecektir.
insert into TABLO_ADI (SUTUN1, SUTUN2) values ('İsim', NOW())
Çıktı: İsim — 11.08.2020 / 17.40
Umarız makalemiz sizler için faydalı olmuştur. Merak ettiğiniz sorguları yorum olarak eklerseniz sizler için makalemize dahil ederiz. Mutlu sorgular dileriz! :)