SQL Veri Türleri: Yeni Başlayanlar için Temel Rehber
MySQL, PostgreSQL ve SQL Server’da SQL veri türlerine hâkim olun. Performansı ve veri bütünlüğünü optimize etmek için doğru sayısal, metin ve tarih biçimlerini seçmeyi öğrenin.
SQL ile çalışmaya ilk başladığınızda, veri türlerini basit etiketler olarak görmek kolaydır. Tek bir sütun ya sayıları, ya metni, ya tarihleri ya da özel veri türlerini saklar. Ancak bir veri türü yalnızca bir etiket değildir. Veritabanının gözünde bir değerin ne olduğunu tanımlayan bir kurallar bütünüdür.
Uygulamada, veri türleri SQL’in veritabanınızdaki bilgiyi “anlama” biçimini şekillendirir. SQL’e verinizi doğru biçimde okuması, karşılaştırması ve işlemesi için gereken bağlamı veren bir talimat setidir.
Bu eğitimde, başlıca SQL veri türü kategorilerine bakacak ve farklı veritabanı yönetim sistemlerinde nasıl davrandıklarını göreceğiz. Boyunca verilen örnekleri adım adım takip etmenizi öneririm.
Veritabanı tablolarıyla daha önce çok çalışmadıysanız,SQL Fundamentals kursumuz, bu tür veri kümelerinin nasıl yapılandığına dair net ve başlangıç seviyesine uygun bir temel sunar.
SQL Veri Türleri Nedir?
Bir veri türü, verinizin biçimini tanımlar: Bir sütunun hangi türde değerler tutabileceğini, bu değerlerin dahili olarak nasıl saklandığını ve üzerinde hangi işlemlerin mantıklı olduğunu.
Bu, seçtiğiniz veri türünün yalnızca tablo tasarımını etkilemediği anlamına gelir. Depolama ihtiyaçlarını, sorgu performansını, sıralama davranışını, matematiksel işlemleri ve hatta farklı sistemlerin aynı değeri nasıl yorumladığını etkileyebilir.
İşte birden fazla türü bir arada kullanan basit bir tablo:
CREATETABLE employees (
id INT,
name VARCHAR(50),
start_date DATE,
active BOOLEAN,
salary DECIMAL(10,2));Altyapı:
Bu tablodaki her sütun, tutabileceği veri türünü tanımlar.
id sütunu, her çalışana benzersiz bir tanımlayıcı vererek tam sayıları saklar.
name sütunu, 50 karaktere kadar metin tutabilir; böylece kısa adları saklayabilirsiniz.
start_date sütunu, takvim tarihleri içindir.
active sütunu, doğru veya yanlış değerleri tutar; bu da şu anda aktif olan çalışanları takip etmeyi kolaylaştırır.
Son olarak, salary sütunu, kuruşlar için ondalık noktadan sonra iki basamak olacak şekilde 10 basamak hassasiyetle parasal tutarları saklar.
Birlikte, bu sütunlar her alan için izin verilen değer türleri hakkında kurallar uygulayan, daha öngörülebilir ve üzerinde çalışması daha kolay bir yapılandırılmış tablo oluşturur.
Şimdi buna bazı örnek veriler ekleyelim ve PostgreSQL kullanarak ortaya çıkabilecek tabloya bakalım.
Farklı veritabanı sistemleri aynı ilkeleri izler ancak adlandırma ve özelliklerde farklılık gösterir. Örneğin, SQL Server BOOLEAN yerine BIT kullanır ve MySQL BOOLEAN'ı küçük bir tamsayı olarak ele alır.
SQL Veri Türlerinin Kategorileri
Dört ana veri türü kategorisi vardır: sayısal, karakter, tarih ve özel. Her birine ayrıntılı bakalım.
Sayısal veri türleri
Sayısal türler tam sayıları veya ondalıkları saklar. Seçtiğiniz sayısal tür, saklanan sayıların aralığını, hassasiyetini ve depolama boyutunu belirler. Bu kategoride en yaygın veri türleri şunlardır:
tam sayılar: INT, SMALLINT ve BIGINT gibi, tam sayılar için,
ondalıklar: DECIMAL(p, s) ve NUMERIC(p, s) gibi, tam ondalık değerler için,
ve kayan noktalılar: FLOAT ve DOUBLE gibi, küçük yuvarlama farkları oluşturabilen yaklaşık değerler için
Farklı sayısal veri türlerini göstermek için bir örnek tablo oluşturalım:
Gördüğünüz gibi, ilk sütun yalnızca tam sayı olacak şekilde kısıtlanmıştır, ikincisi ondalık noktadan sonra iki basamaklı ondalık sayıdır ve üçüncüsü belirsiz sayıda basamağa sahip ondalık bir değerdir.
İlk bakışta DECIMAL ve FLOAT aynı gibi görünebilir. Ancak önemli bir fark vardır: DECIMAL belirli sayıda ondalık basamakla kesin bir sayı saklarken, FLOAT sistemden sisteme az da olsa değişebilen yaklaşık bir değer tutar.
Hassasiyet gerektiğinde ondalık kullanmak ve yalnızca küçük yuvarlama hataları kabul edilebilirse kayan noktalılara güvenmek önemlidir.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Sayısal
INT, SMALLINT, BIGINT
Farklı boyutlarda tam sayılar
1, 42, 1000
Sayısal
DECIMAL(p,s), NUMERIC(p,s)
Sabit hassasiyetli kesin ondalık değerler
19.99, 250.56
Sayısal
FLOAT, DOUBLE
Yaklaşık ondalık değerler. Küçük yuvarlama farkları oluşturabilir
3.1415, 2.71828
Karakter ve dize veri türleri
Karakter türleri metni saklar. Performans ve depolama verimliliği açısından farklılık gösteren birkaç tür vardır.
CHAR(n), sabit uzunluklu karakter kümeleri içindir. Eyalet kodları veya havalimanı kısaltmaları gibi her zaman aynı boyuta sahip veriler için kullanışlıdır.
VARCHAR(n), değişken uzunluklu karakter kümeleri içindir. İsimler, e-posta adresleri ve diğer kullanıcı girdileri için kullanışlıdır.
TEXT ve benzeri türler, blog yazıları veya ürün açıklamaları gibi büyük, yapılandırılmamış metin blokları için kullanılır.
SQL Server gibi bazı sistemler, NCHAR ve NVARCHAR gibi Unicode dize türlerini de destekler; bu, veriniz Latin, Çince veya Kiril gibi birden çok yazı sistemi içerdiğinde faydalıdır.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Karakter / Dize
CHAR(n)
Sabit uzunluklu metin
'US', 'CA'
Karakter / Dize
VARCHAR(n)
Değişken uzunluklu metin
'Alice Johnson', 'Bob Smith'
Karakter / Dize
TEXT
Yapılandırılmamış büyük metin blokları
'Tercih edilen iletişim e-posta.', 'Her sipariş için fatura kopyası gerekir.'
Karakter / Dize
NCHAR(n), NVARCHAR(n)
Sabit veya değişken uzunluklu Unicode metin
'Å', 'É', 'München', 'São Paulo'
Farklı dize veri türlerini gösteren bir örnek tabloyla bunun nasıl göründüğüne bakalım:
CREATETABLE customers (
id INT,
country_code CHAR(2),
name VARCHAR(100),
notes TEXT);INSERTINTO customers VALUES(1,'US','Alice Johnson','Preferred contact by email.'),(2,'CA','Bob Smith','Requires invoice copy for each order.');SELECT*FROM customers;Altyapı:
Bu tablonun sonunda nasıl görüneceğine bakalım. Her bir dize veri türüne kodlanan uzunluk farklarını görebilirsiniz.
id
country_code
name
notes
1
US
Alice Johnson
Preferred contact by email.
2
CA
Bob Smith
Requires invoice copy for each order.
Burada, CHAR(2) tutarlı uzunluk zorunluluğu getirirken, VARCHAR ve TEXT daha fazla esneklik sağlar.
Tarih ve saat veri türleri
Tarih ve saat veri türleri, zamansal bilgiyi doğru biçimde saklamanıza ve sorgulamanıza imkân tanır. Yeni başlayanlar bu tür bilgileri sayısal veya dize veri türleriyle kodlayabileceklerini düşünebilirler. Ancak bunu yapmak, veri analizi aşamalarında sorunlara yol açabilir. Özel bir takvim veri türü kullanmak her şeyi daha sorunsuz hâle getirir.
En yaygın kullanılan üç tür şunlardır:
yıl, ay ve günü kodlayan DATE,
saat, dakika ve saniyeyi saklayan TIME,
ve birleşik tarih ve saati saklayan DATETIME veya TIMESTAMP.
Modern veritabanları, PostgreSQL’deki TIMESTAMPTZ gibi, kesirli saniyeleri veya saat dilimi farkındalığı olan veri türlerini dahi destekleyebilir; bu tür, zaman damgalarını UTC’de saklar ve oturumunuzun saat dilimine alma sırasında otomatik olarak dönüştürür.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Tarih / Saat
DATE
Takvim tarihleri (yıl, ay, gün)
'2025-11-26'
Tarih / Saat
TIME
Günün saati (saat, dakika, saniye)
'09:30:00', '18:45:30'
Tarih / Saat
DATETIME, TIMESTAMP
Birleşik tarih ve saat
'2025-11-20 14:15:00', '2025-11-21 09:00:00'
Tarih / Saat
TIMESTAMPTZ
Saat dilimli birleşik tarih ve saat (PostgreSQL)
'2025-11-21 09:00:00+00'
Bu zamansal veri türlerini göstermek için basit bir tablo oluşturalım:
Doğru tarih veya zaman damgası türünü seçmenin, saklayabileceğiniz veri türünü nasıl etkilediğini görebilirsiniz.
Boolean ve diğer özel veri türleri
Tüm veri türleri önceki kategorilere tam olarak sığmaz. Bunlar için, belirli kullanım durumlarına yönelik bir dizi özel amaçlı tür bulunur. En yaygın görebileceğiniz türlerden bazıları şunlardır:
Doğru-yanlış değerleri (sisteme bağlı olarak BOOLEAN, BOOL veya BIT) kaydetmek için,
Görüntüler, dosyalar veya serileştirilmiş nesneler için ikili veriler (BLOB),
Tam boyutlu belgeler için büyük metin (CLOB),
Şemasız veya iç içe geçmiş veriler için JSON (MySQL ve PostgreSQL’de)
Listeler için ARRAY (yalnızca PostgreSQL’de)
Sayısal dizilere bağlı olmayan benzersiz tanımlayıcılar için UUID — örneğin bir oturum belirteci veya küresel izleme kodu.
Özel türler, yalnızca geleneksel tabloların tek başına yakalayamadığı yapıyı daha zengin veya esnek veriler olarak saklamanıza olanak tanır.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Özel / Boolean / Diğer
BOOLEAN, BOOL, BIT
Doğru veya yanlış değerler
TRUE, FALSE
Özel / Boolean / Diğer
BLOB
İkili büyük nesneler (görüntüler, dosyalar)
[binary image data]
Özel / Boolean / Diğer
CLOB
Büyük metin belgeleri
'Full contract text...'
Özel / Boolean / Diğer
JSON
Yapılandırılmış veya iç içe geçmiş veriler
'{"name": "Alice"}'
Özel / Boolean / Diğer
ARRAY
Değer listeleri (yalnızca PostgreSQL)
[1,2,3]
Özel / Boolean / Diğer
UUID
Küresel olarak benzersiz tanımlayıcılar
'550e8400-e29b-41d4-a716-446655440000'
Farklı Sistemlerde SQL Veri Türleri
Veritabanı yönetim sistemleri, bu veri türlerini kullanma ayrıntılarında farklılaşır. Genel kategoriler aynı kalsa da, tam adlar ve davranışlar sistemler arasında değişir.
Farklı sistemler, veri türlerini kendi önceliklerine göre tasarlar; bu yüzden davranışları farklıdır. Bazı farklar, kullanılan anahtar sözcük gibi küçüktür. Diğerleri ise metin uzunluğu sınırları, boolean’ların nasıl saklandığı ya da sistemin özel biçimleri destekleyip desteklemediği gibi pratikte verinin davranışını değiştirir.
MySQL hız ve sadeliği vurgular; bu nedenle Boolean değerleri için pratik ve hafif bir seçenek olan TINYINT’i (teknik olarak sayılar olarak saklanır) kullanır. Sıkı tür anlamlarından ziyade performansı ve geniş uyumluluğu tercih eder.
PostgreSQL standartlara uyum ve genişletilebilir olmayı hedefler. Bu, gerçek bir BOOLEAN türü kullanmasında ve bir sütunda doğrudan yapılandırılmış veya iç içe geçmiş verileri saklamak için ARRAY ve JSONB gibi daha zengin veri türü seçeneklerine sahip olmasında yansır.
SQL Server ise kurumsal ortamlarda öngörülebilir performans ve Microsoft ekosistemiyle derin entegrasyon için tasarlanmıştır. Bu nedenle Boolean’lar için BIT ve büyük metin için VARCHAR(MAX) gibi güçlü biçimde tanımlanmış türler sunar.
Aşağıdaki tablo, üç büyük SQL sisteminin ortak kavramları nasıl uyguladığını yanyana gösterir.
Kavram
MySQL
PostgreSQL
SQL Server
Sayısal (tam sayılar)
Genel amaçlı tam sayılar için INT kullanır
Tam sayılar için INTEGER kullanır
Tam sayılar için INT kullanır
Ondalık / sabit hassasiyetli sayılar
Kesin sayısal değerler için DECIMAL(p, s) kullanır
Tam hassasiyetli saklama için NUMERIC(p, s) kullanır
Kesin sayısal değerler için DECIMAL(p, s) kullanır
Standart uzunlukta metin dizeleri
Değişken uzunluklu metin için VARCHAR(n) kullanır
Değişken uzunluklu metin için VARCHAR(n) kullanır
Değişken uzunluklu metin için VARCHAR(n) kullanır
Büyük metin depolama
Uzun metin alanları için TEXT kullanır
Uzun metin alanları için TEXT kullanır
Uzun metin alanları için VARCHAR(MAX) kullanır
Boolean değerler
Boolean’ları TINYINT(1) (0 veya 1) olarak saklar
Yerel BOOLEAN değerleri (true/false) kullanır
Boolean benzeri veriler için BIT (0 veya 1) kullanır
Otomatik artan birincil anahtarlar
AUTO_INCREMENT anahtar sözcüğünü kullanır
SERIAL veya IDENTITY kullanır
IDENTITY kullanır
Çok büyük karakter dizeleri
Son derece büyük metin için LONGTEXT kullanır
Pratikte üst sınırı olmayan çok büyük VARCHAR’a izin verir
Büyük veya sınırsız metin için VARCHAR(MAX) kullanır
JSON depolama
Yapılandırılmış JSON verileri için JSON destekler
JSON (metin) ve JSONB (ikili optimize) her ikisini de destekler
JSON’u destekler (metin olarak saklanır)
Dizi depolama
Dizi türlerini desteklemez
Tek sütunda liste saklamak için ARRAY destekler
Dizi türlerini desteklemez
Pratikte bunun anlamı
Her sistemin temel tasarım hedefleri ve optimize edildiği iş yükleri, çalışma biçimini doğrudan etkiler.
Bu farklılıklar, birçok ortak SQL becerisi sistemler arasında kolayca aktarılabilse de, maksimum metin boyutu, otomatik artış anahtar sözcükleri veya karmaşık yapılar için destek gibi ayrıntıların değişebileceği anlamına gelir.
Yalnızca tek bir sistemi kullanıyorsanız, veritabanı yönetim sisteminizin özelliklerinde uzmanlaşmak kolaydır. Ancak iş veya bölüm değişikliği, farklı kurallara sahip başka bir veritabanı yönetim sistemine geçmenizi gerektirebilir.
Bu nedenle, SQL öğrenirken, yalnızca tek bir sistemin ayrıntılarına güvenmek yerine veri türlerinin arkasındaki ortak kavramları tanımak faydalıdır.
Doğru Veri Türünü Seçmek
Bir veri türü seçmek bazen çok basittir. Ama bazen biraz düşünmeyi gerektirir. İyi bir seçim, verinizi sorgulamayı kolaylaştırır, depolamayı sade tutar ve ileride oluşabilecek hataları önler. Geniş kategori, büyük olasılıkla sahip olduğunuz veri türüne göre belirlenecektir.
Sayısal veriler
Örneğin, ölçüm verileri sakladığınızı varsayalım. Elbette takvim veya dize değil, bir tür sayısal veri isteyeceksiniz. Peki saklamak istediğiniz ölçümlerin hassasiyeti ne? Tam sayılar yeterli mi, yoksa ondalıklar mı gerekiyor? Sabit sayıda anlamlı basamak istiyor musunuz?
Sonrasında depolama ve verimliliği düşünmelisiniz. Verinizi güvenle tutabilecek en küçük tam sayı türünü seçmek tablolarınızı verimli tutmaya yardımcı olur. Daha küçük türler daha az depolama kullanır ve özellikle büyük tablolarda performansı iyileştirebilir. Genellikle, beklenen aralığınız için yeterince büyük ama gereksiniminizi çok aşmayan bir tür seçmek istersiniz.
Bir tam sayı işe yaramadığında, DECIMAL veya FLOAT seçeneğiniz vardır. Kayan noktalı türler, değerleri tam olarak saklamak yerine yaklaşıklar; bu da finansal, bilimsel veya doğruluk açısından kritik işlerde yuvarlama hatalarına yol açabilir.
DECIMAL ve NUMERIC kesin değerler saklar; bu da fiyatlar veya oranlar içeren her şey için onları daha iyi kılar. Ancak, kaydettiğiniz ondalık basamak sayısına bağlı olarak DECIMAL’lar FLOAT’lara göre genelde daha fazla depolama gerektirir.
Karakter ve dize veriler
Dize verilerde, her girdinin ne kadar büyük olmasını istediğinizi düşünmelisiniz.
Genellikle, VARCHAR alanlarını varsayılan olarak maksimum uzunluğa ayarlamak yerine, gerçekçi boyutlandırmak istersiniz. Aşırı büyük sınırlar genellikle esnekliği artırmaz, ancak gelecekteki geliştiricileri verinin beklenen boyutu konusunda yanıltabilir.
Beklenen girdilerinizi — isimler, e-postalar veya ürün başlıkları — düşünün ve sütunu buna göre boyutlandırın.
Tarih ve saat veriler
Takvim verileri için, ne sakladığınız konusunda net olmak faydalıdır.
Yalnızca bir tarihe veya yalnızca bir saate ihtiyacınız varsa, DATETIME yerine DATE veya TIME kullanmak genellikle daha iyidir. Bu seçimler niyetinizi açıkça gösterir ve ileride karışıklık olasılığını azaltır. Ayrıca veritabanına yalnızca tarihli veya yalnızca saatli sorguları optimize etmek için biraz daha alan tanır.
Boolean veriler
Mümkün olduğunda, tamsayılar veya dizeler gibi dolaylı çözümler yerine BOOLEAN gibi alana uygun türleri kullanın. Yerel türler, yerleşik doğrulama, daha açık anlam ve belirli veri türlerini bekleyen veritabanı işlevlerinden destek sunar.
Aşağıda yaygın veri saklama hedeflerinin ve bunları karşılamak için önerilen SQL veri türlerinin bir özeti yer alır.
Hedef
Önerilen veri türü
Neden
Kesin sayısal değerler saklamak (para, ölçümler)
DECIMAL veya NUMERIC
Kayan nokta yuvarlama sorunları olmadan kesin değerler saklar
Kısa veya orta uzunlukta metin saklamak
VARCHAR(n)
Öngörülebilir boyut ve esnek uzunlukla verimli depolama
Uzun, yapılandırılmamış metin saklamak
TEXT veya CLOB
Açıklamalar veya belgeler gibi metin blokları için tasarlanmıştır
Yalnızca tarih veya yalnızca saat bilgisi saklamak
DATE veya TIME
Gereksiz karmaşıklıktan kaçınır ve verinin gerçek anlamını yansıtır
Esnek, belge benzeri değerler saklamak
JSON veya JSONB
Sabit sütunlara uymayan iç içe veya evrilen yapılar için kullanışlıdır
Gruplama ve filtrelemeye tazeleme yapmak isteyen okuyucular için,Intermediate SQL kursu bu temel becerileri adım adım ele alır.
Yaygın Tuzaklar ve En İyi Uygulamalar
Basit bir veritabanı şeması bile, veri türleri özenle seçilmezse sorun yaşayabilir.
Kesilme (truncation)
Örneğin, yalnızca 5 karaktere izin veren bir ad sütununuz varsa, “Michael” yerine “Micha” ile karşılaşabilirsiniz. Bu, kesilme olarak bilinen yaygın bir sorundur.
Genellikle, gerçek hayattaki çeşitliliğin iyimser bir sınırı aşabildiği isim, adres veya yorum gibi alanlarda ortaya çıkar. Bunu önlemenin bir yolu, metin alanlarını gerçek örneklere göre boyutlandırmak veya az da olsa büyük tutmaktır.
Yuvarlama hataları
Bir diğer yaygın sorun, para veya hassasiyet gerektiren diğer veriler için kayan noktalı değerler kullanıldığında beklenmedik yuvarlama oluşmasıdır. FLOAT’lar yaklaşık değerler sakladığı için küçük tutarsızlıklar birikerek raporları, özetleri veya hesaplamaları etkileyebilir.
Bunu, para birimi veya kesin ondalık değerler içeren her şey için DECIMAL seçerek önleyebilirsiniz. Bu, veritabanının sayıları sabit tutmasını sağlar.
Tür uyumsuzlukları
Tür uyumsuzlukları özellikle birleştirmelerde veya karşılaştırmalarda yavaş sorgulara yol açabilir.
Bir sütun dize, diğeri tamsayı olarak saklandığında (veya her tablo biraz farklı bir tür kullandığında) ve bunları birleştirmeye çalıştığınızda, veritabanı değerleri anlık olarak dönüştürmek zorunda kalabilir. Bu, hatalara yol açabilir ve gereksiz ek yük yaratır.
İlgili sütunları aynı türde tutmak bu gizli dönüşümleri önler ve sorguların daha sorunsuz çalışmasına yardımcı olur.
Tarih biçimlendirme
Takvim tarihleri kendilerine özgü pek çok sorun barındırır.
Sistemler yerel gelenekleri karıştırdığında veya geliştiriciler uygun tarih türleri yerine tarihleri dize olarak sakladığında, tarih biçimlendirme tutarsızlıkları yaygın bir karmaşa kaynağıdır. Bu tutarsızlıklar, sorguların hatalı davranmasına veya fark edilmeden yanlış sonuç döndürmesine neden olabilir.
Doğrudan çözüm, gerçek tarih türlerini kullanmak ve metin biçimindeki tarihlerle çalışırken tutarlı, açık bir biçime bağlı kalmaktır. Veritabanlarınızdaki en yaygın takvim sorunlarından kaçınmanıza yardımcı olması için SQL Server’da Zaman Serisi Analizi kursumuzu özellikle öneririm.
En iyi uygulamalar
Veritabanlarınızın sorunsuz çalışmasını sağlamak için birkaç en iyi uygulama:
Tasarım sürecinin erken aşamalarında tablolara örnek veri girerek boyutlandırma veya tür seçimindeki zayıflıkları ortaya çıkarın.
Gelecekteki değişikliklerin uyumsuzluk yaratmaması için her sütunun amacını ve beklenen aralığını belgeleyin.
Daha spesifik türlerin açıklığı artıracağı durumlarda genel türler kullanmaktan kaçının.
Sonuç
Veri türleri, veritabanınızın sakladığınız değerleri “anlama” biçimini tanımlar. Depolamadan performansa ve açıklığa kadar her şeyi etkiler. Nasıl çalıştıklarını öğrenmek veritabanlarınızı daha güvenilir ve öngörülebilir kılar.
SQL’de bir veri türü, bir sütunun hangi tür veriyi saklayabileceğini ve bu verinin sorgulandığında veya işlendiğinde nasıl davrandığını tanımlar. Depolamayı, doğrulamayı, sıralamayı, karşılaştırmayı ve matematiksel işlemleri etkiler.
SQL Veri Türleri SSS
SQL’de veri türü nedir?⌄
SQL’de bir veri türü, SQL’e veritabanı sütununuzda hangi tür bilgiyi beklemesi gerektiğini söyleyen bir kurallar bütünüdür. Esasen sisteminizin verinizi “anlama” yoludur.
SQL’de bir sütunu belirli bir veri türüne nasıl ayarlarım?⌄
SQL’de bir sütunu tanımlarken, sütuna ad verdikten hemen sonra veri türünü belirlersiniz. Şöyle görünür: name DATATYPE. Önceden tanımladığınız bir sütundaki veri türünü güncellemek için ALTER COLUMN komutunu da kullanabilirsiniz.
Neden doğru veri türünü seçmem gerekiyor?⌄
Veriniz için en iyi veri türünü seçmek, sahip olduğunuz veri türünü netleştirir, doğru saklama ve kullanımı sağlar ve kodunuzda sonradan oluşabilecek hataları önler.
DECIMAL ile FLOAT arasındaki fark nedir?⌄
DECIMAL, sayıyı sabit sayıda ondalık basamakla saklayan kesin bir sayısal veri türüdür. FLOAT ise sayının bir yaklaşımını saklayan bir veri türüdür.
Tüm veritabanı yönetim sistemleri aynı veri türlerini mi kullanır?⌄
Hem evet hem hayır. Her veritabanı yönetim sistemi, sayısal, karakter ve takvim veri türleri için benzer türlere sahiptir. Ancak, spesifik adlarında, perde arkasında nasıl kullanıldıklarında ve destekledikleri özel veri türlerinde farklılık gösterirler.
Biyolojik araştırma ortamında verilerle çalışma konusunda 13 yıllık deneyime sahip bir doktora sahibiyim. Python, MATLAB ve R dahil olmak üzere birkaç programlama dilinde yazılım geliştiriyorum. Öğrenme sevgimi dünyayla paylaşma konusunda tutkuluyum.
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
SQL ile çalışmaya ilk başladığınızda, veri türlerini basit etiketler olarak görmek kolaydır. Tek bir sütun ya sayıları, ya metni, ya tarihleri ya da özel veri türlerini saklar. Ancak bir veri türü yalnızca bir etiket değildir. Veritabanının gözünde bir değerin ne olduğunu tanımlayan bir kurallar bütünüdür.
Uygulamada, veri türleri SQL’in veritabanınızdaki bilgiyi “anlama” biçimini şekillendirir. SQL’e verinizi doğru biçimde okuması, karşılaştırması ve işlemesi için gereken bağlamı veren bir talimat setidir.
Bu eğitimde, başlıca SQL veri türü kategorilerine bakacak ve farklı veritabanı yönetim sistemlerinde nasıl davrandıklarını göreceğiz. Boyunca verilen örnekleri adım adım takip etmenizi öneririm.
Veritabanı tablolarıyla daha önce çok çalışmadıysanız, SQL Fundamentals kursumuz, bu tür veri kümelerinin nasıl yapılandığına dair net ve başlangıç seviyesine uygun bir temel sunar.
SQL Veri Türleri Nedir?
Bir veri türü, verinizin biçimini tanımlar: Bir sütunun hangi türde değerler tutabileceğini, bu değerlerin dahili olarak nasıl saklandığını ve üzerinde hangi işlemlerin mantıklı olduğunu.
Bu, seçtiğiniz veri türünün yalnızca tablo tasarımını etkilemediği anlamına gelir. Depolama ihtiyaçlarını, sorgu performansını, sıralama davranışını, matematiksel işlemleri ve hatta farklı sistemlerin aynı değeri nasıl yorumladığını etkileyebilir.
İşte birden fazla türü bir arada kullanan basit bir tablo:
Bu tablodaki her sütun, tutabileceği veri türünü tanımlar.
idsütunu, her çalışana benzersiz bir tanımlayıcı vererek tam sayıları saklar.namesütunu, 50 karaktere kadar metin tutabilir; böylece kısa adları saklayabilirsiniz.start_datesütunu, takvim tarihleri içindir.activesütunu, doğru veya yanlış değerleri tutar; bu da şu anda aktif olan çalışanları takip etmeyi kolaylaştırır.Son olarak,
salarysütunu, kuruşlar için ondalık noktadan sonra iki basamak olacak şekilde 10 basamak hassasiyetle parasal tutarları saklar.Birlikte, bu sütunlar her alan için izin verilen değer türleri hakkında kurallar uygulayan, daha öngörülebilir ve üzerinde çalışması daha kolay bir yapılandırılmış tablo oluşturur.
Şimdi buna bazı örnek veriler ekleyelim ve PostgreSQL kullanarak ortaya çıkabilecek tabloya bakalım.
id
name
start_date
active
salary
1
Alice Johnson
2025-01-15
TRUE
55000.00
2
Bob Smith
2024-06-01
FALSE
62000.50
Farklı veritabanı sistemleri aynı ilkeleri izler ancak adlandırma ve özelliklerde farklılık gösterir. Örneğin, SQL Server
BOOLEANyerineBITkullanır ve MySQLBOOLEAN'ı küçük bir tamsayı olarak ele alır.SQL Veri Türlerinin Kategorileri
Dört ana veri türü kategorisi vardır: sayısal, karakter, tarih ve özel. Her birine ayrıntılı bakalım.
Sayısal veri türleri
Sayısal türler tam sayıları veya ondalıkları saklar. Seçtiğiniz sayısal tür, saklanan sayıların aralığını, hassasiyetini ve depolama boyutunu belirler. Bu kategoride en yaygın veri türleri şunlardır:
tam sayılar:
INT,SMALLINTveBIGINTgibi, tam sayılar için,ondalıklar:
DECIMAL(p, s)veNUMERIC(p, s)gibi, tam ondalık değerler için,ve kayan noktalılar:
FLOATveDOUBLEgibi, küçük yuvarlama farkları oluşturabilen yaklaşık değerler içinFarklı sayısal veri türlerini göstermek için bir örnek tablo oluşturalım:
Çıktı tablosu şöyle görünürdü:
product_id
price
measurement
1
19.99
3.1415
2
250.56
2.71828
Gördüğünüz gibi, ilk sütun yalnızca tam sayı olacak şekilde kısıtlanmıştır, ikincisi ondalık noktadan sonra iki basamaklı ondalık sayıdır ve üçüncüsü belirsiz sayıda basamağa sahip ondalık bir değerdir.
İlk bakışta
DECIMALveFLOATaynı gibi görünebilir. Ancak önemli bir fark vardır:DECIMALbelirli sayıda ondalık basamakla kesin bir sayı saklarken,FLOATsistemden sisteme az da olsa değişebilen yaklaşık bir değer tutar.Hassasiyet gerektiğinde ondalık kullanmak ve yalnızca küçük yuvarlama hataları kabul edilebilirse kayan noktalılara güvenmek önemlidir.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Sayısal
INT,SMALLINT,BIGINTFarklı boyutlarda tam sayılar
1, 42, 1000
Sayısal
DECIMAL(p,s),NUMERIC(p,s)Sabit hassasiyetli kesin ondalık değerler
19.99, 250.56
Sayısal
FLOAT,DOUBLEYaklaşık ondalık değerler. Küçük yuvarlama farkları oluşturabilir
3.1415, 2.71828
Karakter ve dize veri türleri
Karakter türleri metni saklar. Performans ve depolama verimliliği açısından farklılık gösteren birkaç tür vardır.
CHAR(n), sabit uzunluklu karakter kümeleri içindir. Eyalet kodları veya havalimanı kısaltmaları gibi her zaman aynı boyuta sahip veriler için kullanışlıdır.VARCHAR(n), değişken uzunluklu karakter kümeleri içindir. İsimler, e-posta adresleri ve diğer kullanıcı girdileri için kullanışlıdır.TEXTve benzeri türler, blog yazıları veya ürün açıklamaları gibi büyük, yapılandırılmamış metin blokları için kullanılır.SQL Server gibi bazı sistemler,
NCHARveNVARCHARgibi Unicode dize türlerini de destekler; bu, veriniz Latin, Çince veya Kiril gibi birden çok yazı sistemi içerdiğinde faydalıdır.Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Karakter / Dize
CHAR(n)Sabit uzunluklu metin
'US', 'CA'
Karakter / Dize
VARCHAR(n)Değişken uzunluklu metin
'Alice Johnson', 'Bob Smith'
Karakter / Dize
TEXTYapılandırılmamış büyük metin blokları
'Tercih edilen iletişim e-posta.', 'Her sipariş için fatura kopyası gerekir.'
Karakter / Dize
NCHAR(n),NVARCHAR(n)Sabit veya değişken uzunluklu Unicode metin
'Å', 'É', 'München', 'São Paulo'
Farklı dize veri türlerini gösteren bir örnek tabloyla bunun nasıl göründüğüne bakalım:
Bu tablonun sonunda nasıl görüneceğine bakalım. Her bir dize veri türüne kodlanan uzunluk farklarını görebilirsiniz.
id
country_code
name
notes
1
US
Alice Johnson
Preferred contact by email.
2
CA
Bob Smith
Requires invoice copy for each order.
Burada,
CHAR(2)tutarlı uzunluk zorunluluğu getirirken,VARCHARveTEXTdaha fazla esneklik sağlar.Tarih ve saat veri türleri
Tarih ve saat veri türleri, zamansal bilgiyi doğru biçimde saklamanıza ve sorgulamanıza imkân tanır. Yeni başlayanlar bu tür bilgileri sayısal veya dize veri türleriyle kodlayabileceklerini düşünebilirler. Ancak bunu yapmak, veri analizi aşamalarında sorunlara yol açabilir. Özel bir takvim veri türü kullanmak her şeyi daha sorunsuz hâle getirir.
En yaygın kullanılan üç tür şunlardır:
yıl, ay ve günü kodlayan
DATE,saat, dakika ve saniyeyi saklayan
TIME,ve birleşik tarih ve saati saklayan
DATETIMEveyaTIMESTAMP.Modern veritabanları, PostgreSQL’deki
TIMESTAMPTZgibi, kesirli saniyeleri veya saat dilimi farkındalığı olan veri türlerini dahi destekleyebilir; bu tür, zaman damgalarını UTC’de saklar ve oturumunuzun saat dilimine alma sırasında otomatik olarak dönüştürür.Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Tarih / Saat
DATETakvim tarihleri (yıl, ay, gün)
'2025-11-26'
Tarih / Saat
TIMEGünün saati (saat, dakika, saniye)
'09:30:00', '18:45:30'
Tarih / Saat
DATETIME,TIMESTAMPBirleşik tarih ve saat
'2025-11-20 14:15:00', '2025-11-21 09:00:00'
Tarih / Saat
TIMESTAMPTZSaat dilimli birleşik tarih ve saat (PostgreSQL)
'2025-11-21 09:00:00+00'
Bu zamansal veri türlerini göstermek için basit bir tablo oluşturalım:
Tablo şöyle görünür:
event_id
event_date
start_time
created_at
1
2025-11-26
09:30:00
2025-11-20 14:15:00
2
2025-12-01
18:45:30
2025-11-21 09:00:00
Doğru tarih veya zaman damgası türünü seçmenin, saklayabileceğiniz veri türünü nasıl etkilediğini görebilirsiniz.
Boolean ve diğer özel veri türleri
Tüm veri türleri önceki kategorilere tam olarak sığmaz. Bunlar için, belirli kullanım durumlarına yönelik bir dizi özel amaçlı tür bulunur. En yaygın görebileceğiniz türlerden bazıları şunlardır:
Doğru-yanlış değerleri (sisteme bağlı olarak
BOOLEAN,BOOLveyaBIT) kaydetmek için,Görüntüler, dosyalar veya serileştirilmiş nesneler için ikili veriler (
BLOB),Tam boyutlu belgeler için büyük metin (
CLOB),Şemasız veya iç içe geçmiş veriler için
JSON(MySQL ve PostgreSQL’de)Listeler için
ARRAY(yalnızca PostgreSQL’de)Sayısal dizilere bağlı olmayan benzersiz tanımlayıcılar için
UUID— örneğin bir oturum belirteci veya küresel izleme kodu.Özel türler, yalnızca geleneksel tabloların tek başına yakalayamadığı yapıyı daha zengin veya esnek veriler olarak saklamanıza olanak tanır.
Kategori
Veri tür(ler)i
Amaç / Ne saklar
Örnek değer(ler)
Özel / Boolean / Diğer
BOOLEAN,BOOL,BITDoğru veya yanlış değerler
TRUE, FALSE
Özel / Boolean / Diğer
BLOBİkili büyük nesneler (görüntüler, dosyalar)
[binary image data]
Özel / Boolean / Diğer
CLOBBüyük metin belgeleri
'Full contract text...'
Özel / Boolean / Diğer
JSONYapılandırılmış veya iç içe geçmiş veriler
'{"name": "Alice"}'
Özel / Boolean / Diğer
ARRAYDeğer listeleri (yalnızca PostgreSQL)
[1,2,3]
Özel / Boolean / Diğer
UUIDKüresel olarak benzersiz tanımlayıcılar
'550e8400-e29b-41d4-a716-446655440000'
Farklı Sistemlerde SQL Veri Türleri
Veritabanı yönetim sistemleri, bu veri türlerini kullanma ayrıntılarında farklılaşır. Genel kategoriler aynı kalsa da, tam adlar ve davranışlar sistemler arasında değişir.
Farklı sistemler, veri türlerini kendi önceliklerine göre tasarlar; bu yüzden davranışları farklıdır. Bazı farklar, kullanılan anahtar sözcük gibi küçüktür. Diğerleri ise metin uzunluğu sınırları, boolean’ların nasıl saklandığı ya da sistemin özel biçimleri destekleyip desteklemediği gibi pratikte verinin davranışını değiştirir.
MySQL hız ve sadeliği vurgular; bu nedenle Boolean değerleri için pratik ve hafif bir seçenek olan
TINYINT’i (teknik olarak sayılar olarak saklanır) kullanır. Sıkı tür anlamlarından ziyade performansı ve geniş uyumluluğu tercih eder.PostgreSQL standartlara uyum ve genişletilebilir olmayı hedefler. Bu, gerçek bir
BOOLEANtürü kullanmasında ve bir sütunda doğrudan yapılandırılmış veya iç içe geçmiş verileri saklamak içinARRAYveJSONBgibi daha zengin veri türü seçeneklerine sahip olmasında yansır.SQL Server ise kurumsal ortamlarda öngörülebilir performans ve Microsoft ekosistemiyle derin entegrasyon için tasarlanmıştır. Bu nedenle Boolean’lar için
BITve büyük metin içinVARCHAR(MAX)gibi güçlü biçimde tanımlanmış türler sunar.Aşağıdaki tablo, üç büyük SQL sisteminin ortak kavramları nasıl uyguladığını yanyana gösterir.
Kavram
MySQL
PostgreSQL
SQL Server
Sayısal (tam sayılar)
Genel amaçlı tam sayılar için
INTkullanırTam sayılar için
INTEGERkullanırTam sayılar için
INTkullanırOndalık / sabit hassasiyetli sayılar
Kesin sayısal değerler için
DECIMAL(p, s)kullanırTam hassasiyetli saklama için
NUMERIC(p, s)kullanırKesin sayısal değerler için
DECIMAL(p, s)kullanırStandart uzunlukta metin dizeleri
Değişken uzunluklu metin için
VARCHAR(n)kullanırDeğişken uzunluklu metin için
VARCHAR(n)kullanırDeğişken uzunluklu metin için
VARCHAR(n)kullanırBüyük metin depolama
Uzun metin alanları için
TEXTkullanırUzun metin alanları için
TEXTkullanırUzun metin alanları için
VARCHAR(MAX)kullanırBoolean değerler
Boolean’ları
TINYINT(1)(0 veya 1) olarak saklarYerel
BOOLEANdeğerleri (true/false) kullanırBoolean benzeri veriler için
BIT(0 veya 1) kullanırOtomatik artan birincil anahtarlar
AUTO_INCREMENTanahtar sözcüğünü kullanırSERIALveyaIDENTITYkullanırIDENTITYkullanırÇok büyük karakter dizeleri
Son derece büyük metin için
LONGTEXTkullanırPratikte üst sınırı olmayan çok büyük
VARCHAR’a izin verirBüyük veya sınırsız metin için
VARCHAR(MAX)kullanırJSON depolama
Yapılandırılmış JSON verileri için
JSONdesteklerJSON(metin) veJSONB(ikili optimize) her ikisini de desteklerJSON’u destekler (metin olarak saklanır)Dizi depolama
Dizi türlerini desteklemez
Tek sütunda liste saklamak için
ARRAYdesteklerDizi türlerini desteklemez
Pratikte bunun anlamı
Her sistemin temel tasarım hedefleri ve optimize edildiği iş yükleri, çalışma biçimini doğrudan etkiler.
Bu farklılıklar, birçok ortak SQL becerisi sistemler arasında kolayca aktarılabilse de, maksimum metin boyutu, otomatik artış anahtar sözcükleri veya karmaşık yapılar için destek gibi ayrıntıların değişebileceği anlamına gelir.
Yalnızca tek bir sistemi kullanıyorsanız, veritabanı yönetim sisteminizin özelliklerinde uzmanlaşmak kolaydır. Ancak iş veya bölüm değişikliği, farklı kurallara sahip başka bir veritabanı yönetim sistemine geçmenizi gerektirebilir.
Bu nedenle, SQL öğrenirken, yalnızca tek bir sistemin ayrıntılarına güvenmek yerine veri türlerinin arkasındaki ortak kavramları tanımak faydalıdır.
Doğru Veri Türünü Seçmek
Bir veri türü seçmek bazen çok basittir. Ama bazen biraz düşünmeyi gerektirir. İyi bir seçim, verinizi sorgulamayı kolaylaştırır, depolamayı sade tutar ve ileride oluşabilecek hataları önler. Geniş kategori, büyük olasılıkla sahip olduğunuz veri türüne göre belirlenecektir.
Sayısal veriler
Örneğin, ölçüm verileri sakladığınızı varsayalım. Elbette takvim veya dize değil, bir tür sayısal veri isteyeceksiniz. Peki saklamak istediğiniz ölçümlerin hassasiyeti ne? Tam sayılar yeterli mi, yoksa ondalıklar mı gerekiyor? Sabit sayıda anlamlı basamak istiyor musunuz?
Sonrasında depolama ve verimliliği düşünmelisiniz. Verinizi güvenle tutabilecek en küçük tam sayı türünü seçmek tablolarınızı verimli tutmaya yardımcı olur. Daha küçük türler daha az depolama kullanır ve özellikle büyük tablolarda performansı iyileştirebilir. Genellikle, beklenen aralığınız için yeterince büyük ama gereksiniminizi çok aşmayan bir tür seçmek istersiniz.
Bir tam sayı işe yaramadığında,
DECIMALveyaFLOATseçeneğiniz vardır. Kayan noktalı türler, değerleri tam olarak saklamak yerine yaklaşıklar; bu da finansal, bilimsel veya doğruluk açısından kritik işlerde yuvarlama hatalarına yol açabilir.DECIMALveNUMERICkesin değerler saklar; bu da fiyatlar veya oranlar içeren her şey için onları daha iyi kılar. Ancak, kaydettiğiniz ondalık basamak sayısına bağlı olarakDECIMAL’larFLOAT’lara göre genelde daha fazla depolama gerektirir.Karakter ve dize veriler
Dize verilerde, her girdinin ne kadar büyük olmasını istediğinizi düşünmelisiniz.
Genellikle,
VARCHARalanlarını varsayılan olarak maksimum uzunluğa ayarlamak yerine, gerçekçi boyutlandırmak istersiniz. Aşırı büyük sınırlar genellikle esnekliği artırmaz, ancak gelecekteki geliştiricileri verinin beklenen boyutu konusunda yanıltabilir.Beklenen girdilerinizi — isimler, e-postalar veya ürün başlıkları — düşünün ve sütunu buna göre boyutlandırın.
Tarih ve saat veriler
Takvim verileri için, ne sakladığınız konusunda net olmak faydalıdır.
Yalnızca bir tarihe veya yalnızca bir saate ihtiyacınız varsa,
DATETIMEyerineDATEveyaTIMEkullanmak genellikle daha iyidir. Bu seçimler niyetinizi açıkça gösterir ve ileride karışıklık olasılığını azaltır. Ayrıca veritabanına yalnızca tarihli veya yalnızca saatli sorguları optimize etmek için biraz daha alan tanır.Boolean veriler
Mümkün olduğunda, tamsayılar veya dizeler gibi dolaylı çözümler yerine
BOOLEANgibi alana uygun türleri kullanın. Yerel türler, yerleşik doğrulama, daha açık anlam ve belirli veri türlerini bekleyen veritabanı işlevlerinden destek sunar.Aşağıda yaygın veri saklama hedeflerinin ve bunları karşılamak için önerilen SQL veri türlerinin bir özeti yer alır.
Hedef
Önerilen veri türü
Neden
Kesin sayısal değerler saklamak (para, ölçümler)
DECIMALveyaNUMERICKayan nokta yuvarlama sorunları olmadan kesin değerler saklar
Kısa veya orta uzunlukta metin saklamak
VARCHAR(n)Öngörülebilir boyut ve esnek uzunlukla verimli depolama
Uzun, yapılandırılmamış metin saklamak
TEXTveyaCLOBAçıklamalar veya belgeler gibi metin blokları için tasarlanmıştır
Yalnızca tarih veya yalnızca saat bilgisi saklamak
DATEveyaTIMEGereksiz karmaşıklıktan kaçınır ve verinin gerçek anlamını yansıtır
Esnek, belge benzeri değerler saklamak
JSONveyaJSONBSabit sütunlara uymayan iç içe veya evrilen yapılar için kullanışlıdır
Gruplama ve filtrelemeye tazeleme yapmak isteyen okuyucular için, Intermediate SQL kursu bu temel becerileri adım adım ele alır.
Yaygın Tuzaklar ve En İyi Uygulamalar
Basit bir veritabanı şeması bile, veri türleri özenle seçilmezse sorun yaşayabilir.
Kesilme (truncation)
Örneğin, yalnızca 5 karaktere izin veren bir ad sütununuz varsa, “Michael” yerine “Micha” ile karşılaşabilirsiniz. Bu, kesilme olarak bilinen yaygın bir sorundur.
Genellikle, gerçek hayattaki çeşitliliğin iyimser bir sınırı aşabildiği isim, adres veya yorum gibi alanlarda ortaya çıkar. Bunu önlemenin bir yolu, metin alanlarını gerçek örneklere göre boyutlandırmak veya az da olsa büyük tutmaktır.
Yuvarlama hataları
Bir diğer yaygın sorun, para veya hassasiyet gerektiren diğer veriler için kayan noktalı değerler kullanıldığında beklenmedik yuvarlama oluşmasıdır.
FLOAT’lar yaklaşık değerler sakladığı için küçük tutarsızlıklar birikerek raporları, özetleri veya hesaplamaları etkileyebilir.Bunu, para birimi veya kesin ondalık değerler içeren her şey için
DECIMALseçerek önleyebilirsiniz. Bu, veritabanının sayıları sabit tutmasını sağlar.Tür uyumsuzlukları
Tür uyumsuzlukları özellikle birleştirmelerde veya karşılaştırmalarda yavaş sorgulara yol açabilir.
Bir sütun dize, diğeri tamsayı olarak saklandığında (veya her tablo biraz farklı bir tür kullandığında) ve bunları birleştirmeye çalıştığınızda, veritabanı değerleri anlık olarak dönüştürmek zorunda kalabilir. Bu, hatalara yol açabilir ve gereksiz ek yük yaratır.
İlgili sütunları aynı türde tutmak bu gizli dönüşümleri önler ve sorguların daha sorunsuz çalışmasına yardımcı olur.
Tarih biçimlendirme
Takvim tarihleri kendilerine özgü pek çok sorun barındırır.
Sistemler yerel gelenekleri karıştırdığında veya geliştiriciler uygun tarih türleri yerine tarihleri dize olarak sakladığında, tarih biçimlendirme tutarsızlıkları yaygın bir karmaşa kaynağıdır. Bu tutarsızlıklar, sorguların hatalı davranmasına veya fark edilmeden yanlış sonuç döndürmesine neden olabilir.
Doğrudan çözüm, gerçek tarih türlerini kullanmak ve metin biçimindeki tarihlerle çalışırken tutarlı, açık bir biçime bağlı kalmaktır. Veritabanlarınızdaki en yaygın takvim sorunlarından kaçınmanıza yardımcı olması için SQL Server’da Zaman Serisi Analizi kursumuzu özellikle öneririm.
En iyi uygulamalar
Veritabanlarınızın sorunsuz çalışmasını sağlamak için birkaç en iyi uygulama:
Tasarım sürecinin erken aşamalarında tablolara örnek veri girerek boyutlandırma veya tür seçimindeki zayıflıkları ortaya çıkarın.
Gelecekteki değişikliklerin uyumsuzluk yaratmaması için her sütunun amacını ve beklenen aralığını belgeleyin.
Daha spesifik türlerin açıklığı artıracağı durumlarda genel türler kullanmaktan kaçının.
Sonuç
Veri türleri, veritabanınızın sakladığınız değerleri “anlama” biçimini tanımlar. Depolamadan performansa ve açıklığa kadar her şeyi etkiler. Nasıl çalıştıklarını öğrenmek veritabanlarınızı daha güvenilir ve öngörülebilir kılar.
Bu konuyla ilgili daha fazla okumak için SQL Database Overview Tutorial ve SQLite Veri Türleri: Depolama Sınıflarına Yakından Bakış yazılarına göz atın. Ayrıca, PostgreSQL Summary Stats and Window Functions kursunu da öneririm; bu kursta kümülatif toplamlar ve sıralı istatistiklerin nasıl hesaplandığı gösterilir.
SQL’de bir veri türü, bir sütunun hangi tür veriyi saklayabileceğini ve bu verinin sorgulandığında veya işlendiğinde nasıl davrandığını tanımlar. Depolamayı, doğrulamayı, sıralamayı, karşılaştırmayı ve matematiksel işlemleri etkiler.