MySQL veri tabanı yönetim sisteminde kullanılan veri tipleri ve sınırlamaları hakkında bilgi veren açıklayıcı bir yazıdır Veri tipleri, metinsel, sayısal ve tarih & zaman verileri gibi farklı kullanım alanlarına göre belirlenmiştir CHAR ve VARCHAR veri tipleri arasındaki fark, boyut sınırlamasıdır INT ve FLOAT veri tipleri ise sayısal verilerin saklanması için en uygun veri tipleridir TINYINT, SMALLINT, MEDIUMINT ve BIGINT veri tipleri ise farklı boyutlarda ve kullanım amaçlarına göre belirlenmiştir Bu veri tiplerinin doğru kullanımı veritabanı sisteminin performansını artırırken, veri bütünlüğünün korunmasına yardımcı olur

MySQL, günümüzde birçok web sitesi tarafından kullanılan, açık kaynak kodlu bir veri tabanı yönetim sistemidir. MySQL veri tabanında kullanılan veri tipleri, kullanım alanlarına bağlı olarak belirlenmiş sınırlamalarla birlikte gelmektedir. Bu veri tiplerinin doğru kullanımı, veri tabanının verimli çalışmasında oldukça önemlidir.
MySQL veri tabanında kullanılan veri tipleri, metinsel veriler (CHAR, VARCHAR, TEXT), sayısal veriler (INT, FLOAT, DOUBLE, BIGINT) ve tarih & zaman verileridir (DATE, TIMESTAMP). Bu veri tiplerinin yanı sıra, VARBINARY ve BLOB veri tipleri de bulunmaktadır.
Veri tabanının kullanım alanına göre belirlenen veri tipleri, her bir için belirlenmiş sınırlamalarla birlikte gelmektedir. Örneğin, CHAR veri tipi, sabit boyutlu karakter dizilerini saklamak için kullanılırken, VARCHAR veri tipi değişken boyutlu karakter dizilerini saklamak için kullanılmaktadır. Ayrıca, tarih & zaman verileri için DATE ve TIMESTAMP veri tipleri kullanılmaktadır ve sayısal veriler için de birbirinden farklı boyutlarda INT, FLOAT, DOUBLE, TINYINT, SMALLINT, MEDIUMINT ve BIGINT veri tipleri bulunmaktadır.
MySQL veri tabanında otomatik sıralama yapmak için kullanılan AUTO_INCREMENT sınırlaması da veri tiplerine bağlı olarak belirlenmektedir. Buna ek olarak, DATE_ADD() ve DATE_SUB() fonksiyonları tarih & zaman verilerinin manipüle edilmesinde kullanılabilmektedir.
Bir veri tabanı yöneticisi olarak, MySQL veri tiplerini doğru bir şekilde kullanmanız, veritabanınızın daha hızlı ve verimli çalışmasını sağlayacaktır. Ayrıca, her bir veri tipine bağlı olarak belirlenmiş sınırlamaların doğru bir şekilde kullanılması, veri bütünlüğünün korunmasına yardımcı olacaktır.
CHAR ve VARCHAR Veri Tipleri
MySQL veri tabanında kullanılan CHAR ve VARCHAR veri tipleri, metinsel verileri saklamak için kullanılır. Bu veri tipleri arasındaki en önemli fark, boyut sınırlamasıdır. CHAR veri tipi, belirlenen sabit sayıda karakterin saklanmasına izin verir. Örneğin, "yazılım" kelimesi için CHAR(7), "veritabanı" kelimesi için CHAR(10) gibi. VARCHAR veri tipi ise, depolanacak karakter sayısına göre boyutu değişen bir veri tipidir. Örneğin, "yazılım" kelimesi için VARCHAR(7), "veritabanı" kelimesi için VARCHAR(10) gibi.
CHAR ve VARCHAR veri tipleri arasında farklı sınırlamalar da vardır. CHAR veri tipi, depolanacak karakter sayısına göre sabit bir boyutta tutulur ve gerektiğinde boşluk karakterleriyle doldurulur. Bu da disk yerinden tasarruf sağlarken, saklanan verilerin okunabilirliğini arttırır. Ancak, gereksiz boşluk karakterleri de veritabanında saklanır. VARCHAR veri tipinde ise, sadece gerçekten kullanılan karakterler saklanır. Bu da daha az disk yerinde saklanan veriler için daha iyi bir seçenek olabilir.
CHAR ve VARCHAR veri tiplerinin kullanım örnekleri değişkenlik gösterir. Örneğin, adres bilgisi gibi sabit sayıda karakter içeren veriler için CHAR veri tipi tercih edilebilirken, kullanıcı yorumları gibi değişken yapıda karakterler içeren veriler için VARCHAR veri tipi daha uygun olabilir.
Veri Tipi | Boyut |
---|---|
CHAR | Sabit boyutlu |
VARCHAR | Değişken boyutlu |
INT ve FLOAT Veri Tipleri
MySQL veri tabanında kullanılan INT ve FLOAT veri tipleri, sayısal verilerin saklanması için tasarlanmıştır ve farklı sınırlamalara sahiptirler.
INT veri tipi, tamsayı değerleri tutmak için kullanılır ve 4 bayt (32 bit) bellek alanı gerektirir. En küçük değer -2147483648, en büyük değer ise 2147483647'dir. Bu veri tipi genellikle öğrenci numarası, telefon numarası veya sipariş numarası gibi tam sayı değerleri için kullanılır.
FLOAT veri tipi ise ondalık sayılar ve işlem sonucu decimal kısımlar için kullanılır. 4 bayt (32 bit) bellek alanı gerektirir. En küçük değeri -3.402823466E+38, en büyük değeri ise 3.402823466E+38'dir. FLOAT veri tipi, para birimi gibi ondalık hassasiyet gerektiren işlemler için kullanılabilir.
Buna ek olarak, INT ve FLOAT veri tipleri AUTO_INCREMENT özelliği ile birleştirilerek otomatik sıralama özelliği sağlanabilir. AUTO_INCREMENT, veritabanındaki bir tablodaki bir sütunu otomatik olarak artırır ve bir sonraki ekleme işlemi sırasında kullanılacak değeri belirler. Bu özellik sıklıkla bir kullanıcının profil numarası gibi eşsiz değerler için kullanılır.
Veri tipleri aynı zamanda farklı sınırlamalara da sahiptir. Örneğin, INT veri tipi, bir tablodaki şimdiye kadar kullanılan en yüksek tam sayı değerine göre sınırlanabilir. FLOAT veri tipinde ise bellek alanı sınırlıdır ve bir değişken ayrıldığı bellek alanını geçtiğinde hata verebilir.
Özetle, INT ve FLOAT veri tipleri, sayısal verilerin saklanması için en uygun veri tipleridir. Hem tamsayılar hem de ondalık sayılar için sık kullanılırlar ve değişkenlere tanımlanan değerlerin sınırlarını belirleyerek veritabanı sisteminin performansını artırırlar.
TINYINT, SMALLINT, MEDIUMINT ve BIGINT Veri Tipleri
TINYINT, SMALLINT, MEDIUMINT ve BIGINT veri tipleri, MySQL veri tabanında sıkça kullanılan veri tipleri arasındadır. Bu veri tipleri farklı boyutlarda ve kullanım amaçlarına göre belirlenmiştir.
TINYINT, 1 byte boyutunda ve -128 ila 127 arasındaki tamsayı değerlerini saklayabilir. SMALLINT, 2 byte boyutunda ve -32,768 ila 32,767 arasındaki tamsayı değerlerini tutar. MEDIUMINT ise 3 byte boyutunda ve -8,388,608 ila 8,388,607 arasındaki tamsayı değerlerini saklar.
BIGINT veri tipi, 8 byte boyutunda olup -9,223,372,036,854,775,808 ila 9,223,372,036,854,775,807 arasındaki tamsayı değerlerini saklayabilir. Bu veri tipi, özellikle büyük veri setleri üzerinde çalışırken veri bütünlüğünü koruma açısından önem arz eder.
Veri tiplerinin boyutunun belirlenmesi, verilerin doğru şekilde saklanması ve işlenmesi açısından hayati önem taşır. Veri tiplerini kullanırken sınırlamalarına dikkat edilmelidir. Ayrıca, ihtiyaçlar doğrultusunda en uygun veri tipi seçilmelidir.
BOOLEAN Veri Tipi
MySQL veri tabanında BOOLEAN veri tipi, sadece "true" ya da "false" değerlerini alabilen bir veri tipidir. Bu veri tipi, genellikle mantıksal ifadelerin doğru ya da yanlış olma durumlarını saklamak için kullanılır. BOOLEAN veri tipinin sınırlaması, yalnızca 1 bitlik yer kaplamasıdır.
BOOLEAN veri tipinin kullanım alanları, genellikle koşullu ifadelerle ilgilidir. Örneğin, bir kullanıcının bir şeyi satın aldığı ya da satın almadığı durumu saklamak için BOOLEAN veri tipi kullanılabilir. Bunun yanı sıra, veri tabanında bulunan farklı bilgileri birbiriyle ilişkilendirmek için BOOLEAN veri tipi kullanılabilir.
Örnek olarak, bir kullanıcının üyelik durumunu saklamak için BOOLEAN veri tipi kullanılabilir. Eğer kullanıcı üyeyse, değeri "true" olarak saklanırken, üye değilse "false" olarak saklanabilir. Bu şekilde, veri tabanında arama yaparken üyelerle ilgili filtrelemeler yapmak daha kolay hale gelir.
AUTO_INCREMENT Sınırlaması
AUTO_INCREMENT sınırlaması, bir veri tabanındaki verilerin otomatik olarak sıralanmasına olanak tanıyan bir özelliktir. Bu özellik kullanılarak verilerin otomatik olarak sıralandırılması, veri tabanındaki verilerin düzenlenmesini kolaylaştırır ve verilerin erişimini hızlandırır. AUTO_INCREMENT sınırlaması, birincil anahtar olarak işlev görür ve genellikle tablolarda id sütunu için kullanılır.
Örneğin, bir müşteri tablosu oluştururken, her müşteri için benzersiz bir id oluşturabiliriz. Bu sayede, müşteri verilerine kolayca erişebilir, müşterileri sıralayabilir ve veri tabanındaki diğer tablolarla ilişkilendirebiliriz. AUTO_INCREMENT sınırlaması, tablo oluşturulurken belirlenir ve sadece tam sayı veri tipleri için kullanılabilir.
FLOAT ve DOUBLE Veri Tipleri
FLOAT ve DOUBLE veri tipleri, MySQL veri tabanının sayısal veri tipleri arasında yer alır ve birbirlerine oldukça benzerdir. Ancak, aralarında belirgin farklar bulunmaktadır.
FLOAT veri tipi, Noktalı Sayısal Veri tipidir ve ondalık sayıları saklamak için kullanılır. FLOAT, virgülden önce maksimum 24 bitlik bir alan işgal ederken, virgülden sonra maksimum 53 bitlik bir alanı işgal eder. Bu nedenle, FLOAT tipindeki veriler daha az doğruluk sağlarlar.
Diğer taraftan, DOUBLE veri tipi de Noktalı Sayısal Veri tipidir ve FLOAT tipine benzer şekilde ondalık sayıları saklamak için kullanılır. Ancak, DOUBLE tipi daha kesin bir sayısal ifade sağlar. Virgülden önce maksimum 53 bit kapsar ve virgülden sonra maksimum 53 bit kapsar.
Bu veri tipleri, sayısal karmaşık hesaplama işlemlerin yapıldığı durumlarda kullanılır. Örneğin, maliyet hesaplaması, hassas para birimi dönüşümleri yapmak gibi alanlarda kullanılabiliyorlar. Ancak, kullanım alanları sınırlı olup, veritabanında büyük bir depolama alanı kullanımına neden olurlar.
Tablo yapısı, veri tipinin uzunluğunu gösteren "a,b" ifadesi ile belirtilir. "a" ifadesi, toplam sayısal basamak sayısını ve "b" ifadesi, virgülden sonraki ondalık basamak sayısını belirtir. FLOAT tipi için, a,b ifadesi ( 7 , 4 ) veya ( 10 , 4 ) gibi, DOUBLE tipi için ( 15 , 8 ) veya ( 18 , 8 ) gibi kullanılabilir.
DATE ve TIMESTAMP Veri Tipleri
Tarih ve zaman bazlı verilerin saklanması, özellikle veri tabanı uygulamaları için oldukça önemlidir. MySQL, bu amaçla DATE ve TIMESTAMP veri tiplerini kullanır. DATE veri tipi, yalnızca tarihi saklar ve 'YYYY-MM-DD' formatında girilir. TIMESTAMP veri tipi ise tarih ve zamanda hassasiyeti milisaniye olarak sağlar ve 'YYYY-MM-DD HH:MM:SS' formatında girilir.
DATE ve TIMESTAMP veri tipleri, veri tabanına tarih ve zamanla ilgili veri eklemek istendiğinde oldukça kullanışlıdır. Bunlar sırayla tarih ve zaman değerlerini saklamaya uygun bir format sunar, ancak kullandıkları bellek miktarı ölçüsünde (4 bayt DATE, 8 bayt TIMESTAMP) daha fazla alan gerektirirler. Tarih ve saat bilgisi ile yapılan sorgularda, DATE ve TIMESTAMP, diğer veri tiplerinden daha kolay ve etkili bir şekilde kullanılırlar.
DATE_ADD() ve DATE_SUB() Fonksiyonları
MySQL DATE_ADD() ve DATE_SUB() fonksiyonları, belirtilen tarihi veya zamanı belirli bir değer kadar artırmak veya azaltmak için kullanılır. Bu fonksiyonlar, DATE veya DATETIME veri tiplerinde çalışır. Fonksiyonlar ayrıca, HOUR, MONTH, DAY, SECOND, YEAR gibi farklı birimlerde de kullanılabilir.
DATE_ADD() fonksiyonu, belirtilen tarihe veya zaman aralığına belirli bir sayı (pozitif veya negatif) birim ekler. Örneğin, DATE_ADD('2022-01-01', INTERVAL 3 MONTH) fonksiyonu, başlangıç tarihine 3 ay ekler. Benzer şekilde, DATE_ADD('08:30:45', INTERVAL -2 HOUR) fonksiyonu, başlangıç zamanından 2 saat çıkarır.
DATE_SUB() fonksiyonu, belirtilen tarihten veya zaman aralığından belirli bir sayı (pozitif veya negatif) birim çıkarır. Örneğin, DATE_SUB('2022-01-01', INTERVAL 1 YEAR) fonksiyonu, başlangıç tarihinden bir yıl çıkarır. Benzer şekilde, DATE_SUB('08:30:45', INTERVAL 30 SECOND) fonksiyonu, başlangıç zamanından 30 saniye çıkarır.
DATE_ADD() ve DATE_SUB() fonksiyonları, çeşitli operasyonlarla birleştirilerek daha karmaşık sorgular da üretebilir. Örneğin, DATE_ADD(NOW(), INTERVAL 2 HOUR) fonksiyonu, şu anki zamana 2 saat ekler. Bu fonksiyonlar sayesinde, tarih ve saat verileri üzerinde işlemler yapmak oldukça kolaylaşır.
VARBINARY ve BLOB Veri Tipleri
MySQL veri tabanında kullanılan VARBINARY ve BLOB veri tipleri, özellikleri, kullanım alanları ve sınırlamaları hakkında bilgilendirme amacıyla kullanılır.
BLOB (Binary Large Object), veri tabanında metinsel olmayan verilerin saklanması için kullanılan bir veri tipidir. VARBINARY ise, farklı boyutlardaki ikili verilerin saklanması için kullanılan bir veri tipidir. Bu veri tipleri özellikle resim, video, müzik gibi büyük boyutlu binary verilerin depolanması için kullanılır.
VARBINARY ve BLOB veri tiplerinin kullanım alanları oldukça geniştir. Özellikle web uygulamaları, video arşivleme siteleri, fotoğraf depolama siteleri gibi alanlarda çokça kullanılan bu veri tipleri, binary verilerin depolanması için ideal seçeneklerdir.
Ayrıca, bu veri tiplerinin belirli sınırlamaları da mevcuttur. Örneğin, BLOB veri tipinde depolanacak verinin boyutu en fazla 65.535 bytes olabilir. Ayrıca, BLOB veri tipinde saklanan veriler ayrıca sıralanamaz veya indekslenemez. VARBINARY veri tipi ise, en fazla 65.535 bytes binary veri saklayabilir.
VARBINARY ve BLOB veri tiplerinin özellikleri ve sınırlamaları, veri tabanı tasarımında önemli bir rol oynar. Bu veri tiplerinin doğru şekilde kullanımı, veri tabanının performansını arttırmaya ve verilerin doğru şekilde saklanmasına yardımcı olabilir.
TEXT Veri Tipi ve Sınırlamaları
MySQL veri tabanında kullanılan TEXT veri tipi, uzun metinlerin veya karakter dizilerinin saklanması için kullanılır. Bu veri tipi, VARCHAR veri tipine benzer, ancak biraz daha büyük bir boyuta sahiptir ve sınırlaması daha yüksektir. TEXT veri tipi temel olarak üç farklı boyutta gelir:
- TINYTEXT: 256 karaktere kadar sınırlıdır.
- TEXT: 65,535 karaktere kadar sınırlıdır.
- LONGTEXT: 4,294,967,295 karaktere kadar sınırlıdır.
Ayrıca, veri tipinin birleştirilmesi için de bazı sınırlamalar vardır. Örneğin, bir tabloda en fazla 65,535 sütun bulunabilir ve her sütunun boyutu 4 GB'a kadar sınırlıdır.
TEXT veri tipi, genellikle bloglar, forumlar ve diğer web sitelerindeki uzun metin, makale veya yorumların depolanması için kullanılır. Bu veri tipi, kullanıcıların geniş bir yelpazedeki içerikleri kolayca kaydedebilmelerine olanak tanır.
TEXT veri tipi, her ne kadar yüksek sınırlama sunsa da, bazı dezavantajları da vardır. Örneğin, diğer veri tiplerine göre daha yavaş performans gösterir ve sorgulama işlemleri daha uzun sürebilir. Ayrıca, yüksek boyutu nedeniyle, belirli bir tablonun yedeklenmesi veya taşınması da daha uzun sürebilir.