Bir veritabanında tablo oluşturulduğunda, tablo oluşturmaya ilişkin SQL ifadesi tablodaki her sütun için yakınlığı veya veri türünü tanımlar. Yakınlık bildirimleri göz ardı edilebilse de, sütun yakınlığını
CREATE TABLE
SQL ifadenizde açık biçimde belirtmek iyi bir fikirdir.
Genel bir kural olarak,
INSERT
ifadesini kullanarak veritabanında sakladığınız her nesne,
SELECT
ifadesini yürüttüğünüzde aynı veri türünün bir örneği olarak döndürülür. Ancak, alınan değerin veri türü, verinin saklandığı veritabanı sütununun yakınlığına bağlı olarak değişik olabilir. Değer bir sütunda saklandığında, veri türü sütunun yakınlığıyla eşleşmiyorsa, veritabanı değeri sütunun yakınlığıyla eşleşecek biçimde dönüştürmeye çalışır. Örneğin, bir veritabanı sütunu için
NUMERIC
yakınlığı bildirildiyse, veritabanı verileri saklamadan önce girilen veriyi sayısal saklama sınıfına (
INTEGER
veya
REAL
) dönüştürmeye çalışır. Veri dönüştürülemezse, veritabanı bir hata verir. Bu kurala göre, “12345” Dizesi bir
NUMERIC
sütununa eklendiğinde, veritabanı bu dizeyi saklamadan önce otomatik olarak 12345 tam sayı değerine dönüştürür. Veri bir
SELECT
ifadesi kullanılarak alındığında, değer bir Dize örneği olarak değil, bir sayısal veri türü (örneğin Numara) örneği olarak döndürülür.
İstenmeyen veri türü dönüştürmesini önlemenin en iyi yolu iki kuralı takip etmektir. Öncelikle, her sütunu saklanması hedeflenen veri türüyle eşleşecek yakınlıkla tanımlayın. Daha sonra, yalnızca veri türü tanımlanan yakınlıkla eşleşen değerleri ekleyin. Bu kuralların takip edilmesi, iki fayda sağlar. Veri eklediğinizde, veriler beklenmedik şekilde (büyük olasılıkla sonuç olarak hedeflenen anlamını kaybedecek biçimde) dönüştürülmez. Ayrıca, verileri almak istediğinizde, veriler orijinal veri türünde döndürülür.
Mevcut sütun benzerliği türleri ve SQL ifadelerinde veri türlerini kullanmayla ilgili daha fazla bilgi için bkz.
Veri türü desteği
.