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:
1 2 3 | sutun_adi DECIMAL(P,D); |
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.
1 2 3 | ucret DECIMAL(10,2); |
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:
1 2 3 | sutun_adi DECIMAL(P); |
Bu eşdeğerdir:
1 2 3 | sutun_adi DECIMAL(P,0); |
Bu durumda, sütun kesirli parça veya ondalık nokta içermez.
Ek olarak, aşağıdaki sözdizimini bile kullanabiliriz.
1 2 3 | sutun_adi DECIMAL; |
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 Basamaklar | Bytelar |
---|---|
0 | 0 |
1–2 | 1 |
3–4 | 2 |
5–6 | 3 |
7–9 | 4 |
Ö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.
1 2 3 4 5 6 7 | CREATE TABLE proje( id INT AUTO_INCREMENT PRIMARY KEY, aciklama VARCHAR(255), maliyet DECIMAL(19 , 4 ) NOT NULL ); |
İkinci olarak, proje tablosuna veri ekleyin.
1 2 3 4 | INSERT INTO proje(aciklama,maliyet) VALUES('Mobil Tasarım', 4500.45),('Uygulama Geliştirme',400.73),('Destek',150.20); |
Üçü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 Yap