Archive for the 'SQL' Category

toUpperCase Türkçe sorunu – Java

Bir uygulamada login işlemi yaparken bir durumda giriş ekranında kullanıcıdan alınan username’i veritabanında aratırken sorun yaşamıştım. Bunun önüne her ikisini de uppercase yaparak geçmiştim. Ama gördük ki bu da başka sıkıntılara yol açtı.

Peki bu sıkıntı neydi? SQL Serverların locale’i Türkçe’ydi ve veritabanından kayıt sorgularken upper metodunu kullanırsak şöyle bir sonuç alıyoruz.

Bunun sonucu ALİ olarak dönecektir. İlk başta garip gelebilir ama locale Türkçe olduğu için olması gereken sonuç bu.

Eğer bu kullanımı yapacaksak haliyle işin java tarafında da şu şekilde bir kullanım gerekecektir.

Bu işlemin sonucunda ise loginID ALI olarak dönecektir. Neden ALİ değil de ALI? Çünkü herhangi bir locale vermedik. İstediğimiz locale’de toUpperCase metoduna işlem yaptırabilmemiz için metodun içine istediğimiz locale’i vermemiz gerekecektir.

java.util.Locale içerisinde Türkçe locale yok, napacağız?

Yukarıdaki gibi bir Türkçe locale yaratıp, toUpperCase içine bu locale’i verdim. Bu işlemden sonra loginID’miz artık ALİ olarak basılacaktır.

Sonuç olarak; veritabanı locale’imiz Türkçe ise java kısmında karşılaştırma yaparken toUpperCase metodunu kullanacaksak içine Türkçe locale vermemiz gerekecektir.

java.util.Date, java.sql.Date dönüşümü

PreparedStatement yazıp elinizdeki java.util.Date formatındaki tarihinizi sorgulamak için java.sql.Date formatına çevirmek istediniz. Fazla kasmaya gerek yok, klasik yöntemlerimizi kullanıp işimize bakalım.

kod parçamızı kullanarak mutlu, mesut, çıldırmadan kod yazmaya devam ediyoruz.

Kaynak: java2s.com

SQL ile veritabanından rastgele kayıt çekmek

Olur da bir gün veritabanında bulunan kişiler arasında çekiliş yapmak vs. isterseniz işinize yarayabilecek bir teknik. Aşağıda farklı veritabanları için farklı sorgular bulunuyor.
MySQL:

PostgreSQL:

Microsoft SQL Server:

IBM DB2:

Oracle:

Kaynak: petefreitag

SQL sorgusu ile yineleyen(mükerrer) kayıtları bulmak

Bir tablodaki tekrarlayan yani 1′den fazla kere girilmiş kayıtları bulmak için aşağıdaki SQL sorgusunu kullanabiliriz. Örnek olarak USERS tablosundaki 1′den fazla kere geçen EMAIL adreslerini bulalım:

Aşağıdaki sorgu ise aynı email’i sadece 1 kez içeren kayıtları getirecek. Yani email adresi yinelenmeyen kayıtların listesi dönecek.

Not: Yukarıdaki tablo ve kolon adlarını kendinize göre ayarlamayı unutmayın ;)
Kaynak: petefreitag.com