İçeriğe geç

Veri Tipleri: Integer, Varchar, Date, Boolean – Hepsi Bir Arada!

Selamlar herkese! Bugün yine böyle oturmuşum, karşıma ne çıktı dersiniz? Yazılımcılığın temel taşlarından biri olan veri tipleri! Hani bazen böyle kod yazarken ‘Bu neydi ya?’, ‘Bu sayıyı mı tutuyor, metni mi?’ diye kendi kendime sorup durduğum zamanlar oluyor ya, işte tam da o anlarda imdadımıza yetişen o sihirli kelimeler: Integer, Varchar, Date ve Boolean.

Şimdi diyeceksiniz ki, ‘Abi ne gerek var bunlara?’ Haklısınız. Başlangıçta insanın gözü korkuyor olabilir. Bir sürü terim, bir sürü tanım… Ama inanın ki, bu temel yapı taşlarını iyi öğrenmek, ileride başımıza gelecek dertleri yarı yarıya azaltıyor. Hani derler ya, ‘Temeli sağlam atmak lazım’ diye, işte tam olarak bu.

Özellikle de ilk kod yazdığım zamanları hatırlıyorum da… Bir değişken tanımlıyorum, içine bir şey yazıyorum, sonra ‘Neden çalışmıyor bu?’ diye saatlerce kafa patlatıyorum. Meğerse atadığım değer, değişkenin tipiyle uyumlu değilmiş. Basit bir hata ama sonuç kocaman bir hayal kırıklığı 🙂

Integer: Sayıların Kralı!

Gelelim en sevdiğimiz, en sık kullandığımız tipe: Integer! Yani tam sayılar. 1, 100, -5000 gibi bildiğimiz o güzelim tam sayılar. Programlarınızda bir ürünün stok adedini tutmak mı istiyorsunuz? Ya da bir kullanıcının yaşını mı kaydetmek? İşte tam burada Integer devreye giriyor. Ama dikkat! Float veya Double gibi ondalıklı sayılarla karıştırmayın. Integer sadece tam sayılarla ilgilenir. Yani 3.14 gibi bir sayıyı Integer’a atamaya kalkarsanız, muhtemelen programınız size kızar. Ya da attığı değer 3 olur, hayal kırıklığı 🙂

Mesela kendi yazdığım ufak bir envanter takip programında, ürünlerin stok sayısını Integer olarak tutuyordum. Bir gün bir hata aldım, baktım ki bir ürünün stok sayısı negatif olmuş! Neyse ki Integer’ın negatif sayılara da izin verdiğini biliyordum da panik yapmadım. Ama tabii, aslında stok sayısı negatif olamaz, değil mi? İşte orada da mantıksal bir kontrol eklemem gerekiyordu. Yani veri tipi uyumu kadar, verinin kendisinin mantıklı olması da önemli.

Varchar: Kelimelerin Dansı

Sırada Varchar var! Bu da metin tabanlı veriler için kullanılıyor. İsim, soyisim, adres, ürün açıklaması gibi her türlü metinsel bilgiyi Varchar ile tutabiliriz. Hani bazen bir metin alanına bir sürü şey yazıyoruz ya, işte Varchar o kadarını alabilir. Ama tabii, bunun da bir sınırı var. Her Varchar’ın bir uzunluk sınırı olur. Veritabanı tasarlarken bunu iyi belirlemek lazım, yoksa uzun bir ismi kesmek zorunda kalırsınız, ne güzel değil mi?

Bir de şöyle bir durum var, bazen Varchar kullanırken Unicode karakterleri (Türkçe karakterler, Arapça, Çince vb.) destekleyen versiyonlarını (NVARCHAR gibi) kullanmak gerekiyor. Yoksa ‘ş’, ‘ı’, ‘ğ’ gibi harfler ekrana bambaşka şekillerde çıkabiliyor. Geçenlerde bir müşterinin sisteminde böyle bir sorunla karşılaştık, adı ‘Şükrü’ olan kullanıcı ‘????r?’ olarak görünüyordu. Neyse ki kısa sürede çözdük ama insanın canı sıkılıyor tabii.

Date: Zamanın İzinde

Gelelim en tatlı veri tiplerinden birine: Date! Tarih ve saat bilgilerini tutmak için birebir. Bir siparişin verildiği tarih, bir kullanıcının kayıt olduğu zaman, bir randevunun saati… Bunların hepsini Date tipiyle kolayca yönetebiliriz. Hatta Date tipleri, tarih hesaplamaları yapmamızı da kolaylaştırır. İki tarih arasındaki farkı bulmak, belirli bir tarihe gün eklemek gibi şeyler artık çocuk oyuncağı. Tabii, doğru formatta kaydettiğimiz sürece.

Bir keresinde, bir projede kullanıcıların doğum tarihlerini Date olarak kaydetmemiz gerekiyordu. Ama veriyi alırken formatı yanlış girmişiz. Mesela ’31/12/1990′ yerine ’12/31/1990′ gibi bir şey girmişiz. Sonra ne oldu dersiniz? Sistem kafayı yedi tabii. 31. ayı mı olurmuş? Neyse ki veritabanı tasarımında DATE yerine DATETIME kullanmıştık da, saat bilgisini de tutuyordu. Bu sayede, hatalı kayıtları tespit edip düzeltebildik. Bu arada, bu tür hatalardan kaçınmak için veri girişini doğrulamak (validation) gerçekten çok önemli.

Boolean: Evet mi, Hayır mı?

Ve son olarak Boolean! Bu da en basit ama en kritik veri tiplerinden biri bence. Sadece iki değeri alabilir: True (Doğru) veya False (Yanlış). Bir kullanıcının aktif olup olmadığını mı kontrol etmek istiyorsunuz? Bir özelliğin açık mı kapalı mı olduğunu mu görmek? İşte tam da bu noktada Boolean imdadımıza yetişiyor. Çok yer kaplamaz, anlaşılması kolaydır. Basit bir anahtar gibi düşünebilirsiniz; açık ya da kapalı. Başka bir seçenek yok.

Bazen böyle basit görünen ama işin temelini oluşturan şeyler, aslında en çok işe yarayanlar oluyor. Mesela bir web sitesinde ‘Kullanıcı Sözleşmesini Kabul Ettim’ kutucuğu var ya, işte onun arkasında genelde bir Boolean değişken yatar. Eğer True ise devam edersin, False ise devam edemezsin. Ne kadar basit ama ne kadar etkili değil mi? Hatta şöyle bir şey de yaptım ben bir keresinde; bir oyun uygulamasında ‘Sesler Açık’ diye bir ayar yaptım. Eğer sesler açıksa True, kapalıysa False yapıyordum. Sonra da oyunun müziklerini buna göre çalıyordum. Çok da güzel çalışıyordu.

Tabii tüm bu veri tiplerini doğru yerde, doğru şekilde kullanmak önemli. Mesela bir metin alanına rakam yazmak istediğinizde Varchar kullanmak yerine Integer kullanmak daha mantıklı olur. Ya da bir tarih bilgisini tutarken, sadece gün, ay, yıl mı yoksa saat bilgisini de mi tutmak istediğinizi düşünerek Date veya DateTime seçmelisiniz. Bu, hem veritabanınızın daha düzenli olmasını sağlar hem de ileride yaşayabileceğiniz olası hataların önüne geçer. Sanırım bu kadar yeterli oldu 🙂

Neticede, bu veri tipleri programlamanın alfabesi gibi. Bunları iyi bilirseniz, istediğiniz hikayeyi yazabilirsiniz. Yani kodunuzla güzel işler başarabilirsiniz. Hadi bakalım, şimdilik bu kadar. Bir sonraki yazıda görüşmek üzere, hoşça kalın!