Bu eğitimde, MySQL CHAR veri türü ve bunun veritabanı tablo tasarımınıza nasıl uygulanacağı hakkında bilgi edineceksiniz.
CHAR veri türü MySQL’de sabit uzunlukta bir karakter türüdür. CHAR tipini sık sık depolamak istediğimiz maksimum karakter sayısını belirten bir uzunluk ile tanımlarız. Örneğin, CHAR (20) 20 karaktere kadar tutabilir.
Saklamak istediğiniz veriler sabit bir boyuttaysa, CHAR veri türünü kullanmanız gerekir. Bu durumda VARCHAR ile karşılaştırıldığında daha iyi bir performans elde edersiniz.
CHAR veri türünün uzunluğu, 0 ile 255 arasında herhangi bir değer olabilir. Bir CHAR değeri sakladığınızda, MySQL, değerini boşlukta belirttiğiniz uzunluğa kadar doldurur.
CHAR değerini sorguladığınızda, MySQL sondaki boşlukları kaldırır.
PAD_CHAR_TO_FULL_LENGTH SQL modunu etkinleştirirseniz MySQL’in sondaki boşlukları kaldırmayacağını unutmayın.
Aşağıdaki ifade bir CHAR sütunu içeren bir tablo oluşturur.
1 2 3 4 5 6 | CREATE TABLE personel ( id INT PRIMARY KEY, cinsiyet CHAR(5) ); |
cinsiyet sütunu CHAR veri türüne sahiptir. 5 karaktere kadar tutabilir.
Şimdi, cinsiyet tablosuna 3 satır ekleyelim.
1 2 3 4 | INSERT INTO personel(id,cinsiyet) VALUES(1,'Kadın'),(2,'Erkek'),(3,'Yok'); |
Her CHAR değerinin uzunluğunu almak için LENGTH işlevini kullanırız.
1 2 3 4 5 6 | SELECT cinsiyet, LENGTH(cinsiyet) FROM personel; |
Dikkatinizi çekmiştir. Türkçeye özgü karakterler 2-bayt boyutundadır. LENGTH fonksiyonu ile sorguladığımızda “Kadın” kelimesi 6 bayt olarak görünmektedir.
Eğer sadece karakter adeti sorgulaması yapacaksanız, LENGTH yerine CHAR_LENGTH işlevini kullanabilirsiniz.
1 2 3 4 5 6 7 8 | SELECT cinsiyet, LENGTH(cinsiyet) as KARAKTER_BOYUT, CHAR_LENGTH(cinsiyet) as KARAKTER_ADET FROM personel; |
Aşağıdaki ifade, baştaki ve sondaki boşluklarla birlikte bir CHAR değeri ekler.
1 2 3 4 | INSERT INTO personel(id,cinsiyet) VALUES (4,' Yok '); |
Ancak, değeri aldığımızda MySQL sondaki boş alanı kaldırır.
1 2 3 4 5 6 7 8 | SELECT cinsiyet, LENGTH(cinsiyet) as KARAKTER_BOYUT FROM personel WHERE id=4; |
Böyle bir durumdaki veriyi sorgulamak için sonraki boş alanı kaldırıp, baştaki boşluk unutulmadan sorgulama yapılmalıdır.
1 2 3 4 5 6 7 8 | SELECT cinsiyet, LENGTH(cinsiyet) as KARAKTER_BOYUT FROM personel WHERE cinsiyet like ' Yok'; |
Bu derste, size MySQL CHAR veri türünü ve özelliklerini tanıttık. Şimdi, onu veritabanı tasarımınıza uygulamak için CHAR veri tipini iyi anlamış olmalısınız.
Yorum Yap