MySQL DECIMAL Veri Tipi – Tasarım Kodlama
MySQL

MySQL DECIMAL Veri Tipi

Bu derste, size MySQL DECIMAL veri türünü ve veri tabanını tablonuzda nasıl kullanacağınızı öğreteceğiz.

MySQL DECIMAL veri türü veritabanında kesin sayısal değerleri saklamak için kullanılır. DECIMAL veri türünü, muhasebe sistemlerinde örneğin para verilerini kesin bir şekilde koruyan sütunlar için sıklıkla kullanıyoruz.

Veri türü DECIMAL olan bir sütun tanımlamak için aşağıdaki söz dizimini kullanırsınız:

Yukarıdaki sözdiziminde:

  • P, önemli basamak sayısını temsil eden hassasiyettir. P aralığı 1 ila 65’tir.
  • D, ondalık noktasından sonraki hane sayısını temsil eden ölçekdir. D aralığı 0 ve 30’dur. MySQL, D’nin (<=) P’den küçük veya ona eşit olmasını gerektirir.

DECIMAL (P, D), kolonun D ondalık basamaklarla P basamağına kadar depolayabileceği anlamına gelir. Ondalık sütununun gerçek aralığı hassasiyete ve ölçeğe bağlıdır.

DECIMAL anahtar sözcüğünün yanı sıra DEC, FIXED veya NUMERIC öğesini de kullanabilirsiniz, çünkü DECIMAL ile eş anlamlılar.

INT veri türü gibi, DECIMAL türü de UNSIGNED ve ZEROFILL niteliklerine sahiptir. UNSIGNED özelliğini kullanırsak, DECIMAL UNSIGNED olan sütun negatif değerleri kabul etmeyecektir.

ZEROFILL kullanıyorsak, MySQL, sütun tanımında belirtilen genişliğe kadar gösterge değerini 0’a kadar yükseltir. Ayrıca DECIMAL sütunu için ZEROFILL kullanıyorsanız, MySQL UNSIGNED özniteliğini otomatik olarak sütuna ekler.

Aşağıdaki örnek, DECIMAL veri türüne sahip miktar sütununu tanımlar.

Bu örnekte, miktar sütunu 2 ondalık basamakla 10 basamak saklayabilir; bu nedenle, miktar sütununun aralığı 99999999.99 ile -99999999.99 arasındadır.

MySQL, aşağıdaki sözdizimini kullanmamıza izin verir:

Bu eşdeğerdir:

Bu durumda, sütun kesirli parça veya ondalık nokta içermez.

Ek olarak, aşağıdaki sözdizimini bile kullanabiliriz.

Bu durumda varsayılan P değeri 10’dur.

MySQL DECIMAL depolama

MySQL, tamsayı ve kesirli parçalar için ayrı ayrı depolama alanı atar. MySQL, DECIMAL değerlerini saklamak için ikili format kullanır. 9 haneyi 4 bayta paketler.

Her parça için 9 basamağın her birinin katlanması 4 bayt alır. Artık haneler için gereken depolama aşağıdaki tabloda gösterilmektedir:

Artık BasamaklarBytelar
00
1–21
3–42
5–63
7–94

Örneğin, DECIMAL (19,9) kesirli kısım için 9 rakam ve tamsayı kısım için 19-9 = 10 rakam içerir. Kesirli kısım 4 bayt gerektirir. Tamsayı kısmı, ilk 9 hane için 4 bayt, 1 kalan hane için 1 bayt daha gerektirir. Toplamda, DECIMAL (19,9) sütununda 9 bayt gerekir.

MySQL DECIMAL veri türü Örnek

İlk önce, üç sütun içeren proje adında yeni bir tablo oluşturun: id, aciklama ve maliyet.

İkinci olarak, proje tablosuna veri ekleyin.

Üçüncüsü, proje  tablosundan veri sorgulayın.

Bu yazıda, size MySQL DECIMAL veri türü hakkında ayrıntılı bilgi verdiğini ve finansal veriler gibi sayısal verileri depolayan sütunlara nasıl uygulanacağını gösterdik.

Yorum bırak