Veritabanı temelleri
Veri tipleri ve doğru seçim
Para, metin, zaman ve kimlik aynı şey değildir.
Kavramı anlayalım
Veri tipi hem hangi değerlerin saklanabileceğini hem de hesaplamaların davranışını belirler. int tam sayılar içindir; decimal(p,s) kesin ondalık sayıları saklar: p toplam basamak, s ondalık basamak sayısıdır. float yaklaşık sayıdır; finansal toplamlar için genellikle decimal tercih edilir. Bir tutar sütununu metin yapmak sıralama, toplama ve doğrulamayı zorlaştırır.
SQL Server’da nvarchar Unicode metni saklar; N ön eki Unicode sabit belirtir. Tarih için date, saat hassasiyeti için datetime2; saat dilimi ofseti gerekiyorsa datetimeoffset düşünülebilir. UTC saklama yaklaşımı ile kullanıcıya yerel saat gösterme işini birbirinden ayır. GUID için uniqueidentifier bulunur; her kimlik türünün indeks ve dağıtım etkisi farklıdır.
Sütun uzunluğunu gerçek ihtiyaca göre seç. Her alanı nvarchar(max) yapmak veri kalitesini ve bazı indeks seçeneklerini zayıflatır. Tip dönüşümü sırasında taşma, kesilme ve yuvarlama olabilir. Uygulamanın parametre tipini sütunla eşleştirmek hem doğruluk hem sorgu planı açısından önemlidir.
Şema tasarımında ve uygulama parametrelerini oluştururken; özellikle tutar, zaman ve Unicode alanlarında.
float ile kesin para hesabı yapmak; tarih veya sayıyı yalnız metin olarak saklamak.
Aynı konu. Üç farklı derinlik.
SELECT CAST(12.345 AS decimal(10,2)) AS RoundedAmount;Sonuç 12.35: iki ondalık basamağa yuvarlama olur.
Bu sayfa SQL çalıştırmaz. Örnekleri indirilebilir SqlStudioLab veritabanında, SSMS’de uygula. Geçici tablo örneklerini yeniden çalıştırırken yalnız ilgili #tabloyu temizle. VIEW, procedure ve function örnekleri lab’da kalıcı nesne oluşturur; üretim bağlantısı kullanma.
Önce kendin dene.
5 / 2 ile ondalık bölmenin farkını göster.
Çözümü ve açıklamasını göster
SELECT 5 / 2 AS IntegerDivision, CAST(5 AS decimal(10,2)) / 2 AS DecimalDivision;Tam sayı bölmesi 2, ondalık bölme 2.5 değerini verir. Sonucun gösterilen basamak sayısı tip kurallarına bağlıdır.