MySQL Veri Tipleri ve Sınırlamaları

MySQL Veri Tipleri ve Sınırlamaları

MySQL veritabanı yönetim sistemi, veri tipleri ve sınırlamaları sayesinde verilerin düzenli ve güvenli bir şekilde saklanmasını sağlar CHAR, VARCHAR, INT ve FLOAT gibi temel veri tipleri yanı sıra DATE, TIME ve TIMESTAMP gibi tarih ve saat veri tipleri de kullanılır Veri sınırlamaları ise, NOT NULL, UNIQUE, PRIMARY KEY ve FOREIGN KEY gibi kısıtlamalarla verilerin tutarlılığını sağlar Veri hiyerarşilerini belirlemek için ENUM ve SET gibi veri tipleri kullanılabilir Doğru veri yönetimi, veritabanı uygulamalarının güvenilirliğini ve verilerin doğru bir şekilde yönetilmesini sağlar

MySQL Veri Tipleri ve Sınırlamaları

MySQL, veritabanı tasarımında sıkça kullanılan bir veritabanı yönetim sistemidir. Verilerin güvenli bir şekilde saklanabilmesi ve düzenli bir şekilde yönetilebilmesi için veri tipleri ve sınırlamaların doğru bir şekilde belirlenmesi oldukça önemlidir. Bu nedenle, veri tabanı tasarımcıları ve geliştiricileri tarafından MySQL veri tipleri ve sınırlamaları hakimiyeti gerekmektedir.

MySQL'de kullanılan temel veri tipleri, CHAR, VARCHAR, INT, FLOAT gibi veri tipleridir. CHAR ve VARCHAR, karakter dizileri için kullanılırken INT ve FLOAT, sayısal veriler için kullanılır. Bunların yanı sıra, tarih ve saat veri tipleri de DATE, TIME, TIMESTAMP gibi farklı tarihsel bilgileri saklamak için kullanılır.

  • NOT NULL: Bu sınırlama, bir alanın boş bırakılamayacağı anlamına gelir.
  • UNIQUE: Bu sınırlama, bir alanın yalnızca bir kez kullanılabileceği anlamına gelir.
  • PRIMARY KEY: Bir alanın benzersiz bir tanımlayıcısı olarak kullanılmasını sağlar.
  • FOREIGN KEY: Bu sınırlama, bir tablodaki verilerin diğer bir tablo veya tablolardan alınabileceği anlamına gelir.

Bunların yanı sıra CAST ve CONVERT fonksiyonları aracılığıyla veri tipleri arasında dönüşüm sağlanabilir. Örneğin, bir veri tabanında bir alan, sayısal bir veri olarak saklanırken, bunu bir karakter dizisi haline dönüştürmek mümkündür.

Tüm bunların yanı sıra, veri hiyerarşileri de yönetim açısından oldukça önemlidir. ENUM ve SET gibi veri tipleri, veri hiyerarşilerini tanımlamak için kullanılır. Veritabanında bulunan verilerin güncellenmesi ve silinmesi işlemlerinin de doğru bir şekilde yapılması gerekmektedir. Doğru bir veri yönetimi, veritabanı uygulamalarının güvenilirliğini sağlar ve verilerin doğru bir şekilde yönetilmesini mümkün kılar.


Temel Veri Tipleri

Veritabanı tasarımında kullanılan temel veri tipleri arasında CHAR, VARCHAR, INT ve FLOAT yer almaktadır. CHAR veri tipi, sabit uzunluklu bir karakter dizisi olarak tanımlanır. Örneğin, bir adres sütunu için CHAR(50) veri tipi, her zaman 50 karakter uzunluğunda bir adres dizisi alır. VARCHAR veri tipi ise değişken uzunluklu bir karakter dizisi olarak tanımlanır. Örneğin, bir isim sütunu için VARCHAR(20) veri tipi, 20 karakter uzunluğundan daha kısa veya daha uzun olan herhangi bir karakter dizisini alır.

INT veri tipi, tamsayı değerlerini tutmak için kullanılır. Bu veri tipi, isteğe bağlı bir parametre ile birlikte belirtilen boyuta sahip olabilir. Örneğin, INT(11) veri tipi, 11 basamağa kadar olan tamsayı değerlerini alabilir. FLOAT veri tipi ise kayan noktalı sayılar için kullanılır ve isteğe göre boyut belirtebilirsiniz. Örneğin, FLOAT(4,2) veri tipi, 2 ondalık basamaklı bir sayıyı 4 karaktere kadar tutabilir.

Bu temel veri tipleri, veritabanı tasarımında sıklıkla kullanılan ve verileri farklı şekillerde saklama ihtiyacını karşılarlar. Veritabanı tasarlarken, veri tiplerinin doğru bir şekilde belirlenmesi, veritabanının performansı ve kullanılabilirliği için son derece önemlidir.


Tarih ve Saat Veri Tipleri

Tarih ve saat veri tipleri, veritabanında zaman ve tarih tabanlı verileri işlemek için kullanılan veri tipleridir. Bu veri tipleri, bir olayın ne zaman gerçekleştiğini veya ne kadar sürecek olduğunu tutmak için kullanılır. MySQL veri tabanında kullanılan tarih ve saat veri tipleri arasında DATE, TIME ve TIMESTAMP gibi veri tipleri yer almaktadır.

DATE veri tipi, yıl, ay ve gün değerlerinden oluşan tarihleri tutmak için kullanılır. Bu veri tipinde, yıl dört basamaklı (YYYY), ay iki basamaklı (MM), ve gün yine iki basamaklı (DD) olarak tutulur. TIME veri tipi ise, saati, dakikayı ve saniyeyi tutmak için kullanılır. Bu veri tipinde, saat 0-23 arası bir değer alırken, dakika ve saniye 0-59 arasında bir değer alır.

TIMESTAMP ise, tarih ve zaman değerlerini tek bir veri tipinde birleştirir. Bu veri tipi, 1970 yılından bu yana geçen saniye sayısını tutar. Yani, bir olayın gerçekleştiği tarih ve saati kaydederken bu veri tipi tercih edilebilir. TIMESTAMP veri tipi için, UNIX zaman bilgisi formatı kullanılır.

Veritabanı tasarımında, tarih ve saat veri tiplerinin uygun şekilde kullanılması, veri bütünlüğü açısından son derece önemlidir. Dolayısıyla, tarih ve saat veri tiplerinin kullanımı için dikkatli bir şekilde planlama yapmak gerekmektedir.


Veri Sınırlamaları

Veri sınırlamaları, veritabanı tasarımında oldukça önemli bir yere sahiptir. Bu sınırlamalar, veri tabanı kullanıcıları tarafından sağlanan verilerin güvenilirliğini ve tutarlılığını sağlamak için kullanılır. NOT NULL sınırlaması, bir alanın boş bırakılamayacağını belirler. Yani, bu sınırlama kullanılan bir alanın, veritabanına eklenmesi için değer girmeniz gerekir. UNIQUE sınırlaması, bir alanın benzersiz olmasını sağlar. Bu sınırlama kullanılan alanın, yalnızca bir kez kullanılabileceğini belirler. Ayrıca, bir alanın PRIMARY KEY olarak tanımlanması, bir veri dizisinin tek bir ve benzersiz bir anahtar değere sahip olmasını sağlar. Bir veri dizisindeki tüm diğer bilgiler, bu anahtar değere bağlanır. Bu, veritabanındaki verilerin benzersiz bir şekilde tanımlanmasına yardımcı olur.

FOREIGN KEY, bir veri dizisindeki verilerin başka bir veri dizisindeki verilerle ilişkilendirilmesini sağlar. Bu sınırlandırma, yabancı anahtarlar aracılığıyla gerçekleştirilir. Bir veri dizisindeki bir alan, başka bir veri dizisinde bir anahtar olarak kullanılabilir ve iki veri dizisi arasında bir ilişki oluşturulabilir. Bu, veri bağlantıları kurmak için oldukça önemlidir. Veri sınırlamaları, veritabanının güvenliği ve tutarlılığı açısından oldukça önemlidir. Bilgi girişlerini kontrol etmek ve tutarlılığı sağlamak, veritabanındaki verilerin doğruluğunu ve güvenliğini artırır. Bu sınırlandırmaları kullanarak, kullanıcı tarafından girilen yanlış bilgileri azaltmak ve işlem kolaylığı sağlamak mümkündür.


Veri Tipleri Arasında Dönüşüm

Veri tipleri arasında dönüşüm, veritabanı tasarımında oldukça önemli bir konudur. MySQL veritabanında CAST ve CONVERT fonksiyonları veri tipleri arasında dönüşüm yapmak için kullanılır. CAST fonksiyonu belirtilen ifadeyi belirlenen veri tipine dönüştürür ve sonucu döndürür. CONVERT fonksiyonu CAST fonksiyonuna benzer şekilde çalışır ancak ikinci argüman ile hedef veri tipi belirtilir.

CAST fonksiyonu kullanarak bir örnekle açıklamak gerekirse, "123" ifadesini bir integer veri tipine dönüştürmek istediğimizde aşağıdaki SQL sorgusu kullanılabilir:

```SELECT CAST("123" AS UNSIGNED INTEGER);```

Bu sorgu sonucunda "123" ifadesi unsigned integer veri tipine dönüştürülerek 123 değeri döndürülür.

CONVERT fonksiyonunu kullanarak da veri tipleri arasında dönüşüm yapılabilir. Örneğin, bir datetime ifadesi VARCHAR veri tipine dönüştürülmek istendiğinde aşağıdaki sorgu kullanılabilir:

```SELECT CONVERT("2021-09-07 14:27:00", CHAR);```

Bu sorguda, "2021-09-07 14:27:00" ifadesi CHAR veri tipine dönüştürülerek "2021-09-07 14:27:00" değeri döndürülür.

Veri tipleri arasında dönüşüm yaparken CAST ve CONVERT fonksiyonlarını doğru şekilde kullanmak gereklidir. Yanlış kullanıldığında hatalar verebilir ve veritabanına zarar verebilir. Bu nedenle dönüşüm işlemleri yaparken özenli olunmalı ve doğru argümanlar kullanılmalıdır.


Veri Tipleri Arasında Dönüşüm Örnekleri

Bir veri tabanında yer alan veriler, farklı veri tiplerinde saklanabilir. Bu verilerin birbirleriyle uyumlu olması için bazen veri tipleri arasında dönüşüm yapmak gerekebilir. Bu işlem için MySQL'da CAST ve CONVERT fonksiyonları kullanılır.

CAST fonksiyonu, bir veri tipini başka bir veri tipine dönüştürmek için kullanılır. Örneğin, bir sayısal değeri karakter dizisine çevirmek için CAST fonksiyonu kullanılır.

Örnek Açıklama
CAST('123' AS INT) '123' karakter dizisi, tamsayı olarak dönüştürülür.
CAST('3.14' AS DECIMAL(3,1)) '3.14' karakter dizisi, ondalık sayı olarak dönüştürülür.
  • DECIMAL(3,1) tipi, üç hane tam sayı kısmı ve bir hane ondalık kısmı olan bir sayıyı temsil eder.

CONVERT fonksiyonu da CAST fonksiyonu gibi veri tipleri arasında dönüşüm yapmak için kullanılır. Fakat CONVERT fonksiyonu, bazı farklı parametreler alarak daha fazla esneklik sağlar.

Örnek Açıklama
CONVERT('123', SIGNED INTEGER) '123' karakter dizisi, işaretli tamsayı olarak dönüştürülür.
  • SIGNED INTEGER, işareti olan tamsayıyı temsil eder.
CONVERT('3.14', FLOAT) '3.14' karakter dizisi, kayan noktalı sayı olarak dönüştürülür.
  • FLOAT, kayan noktalı sayıyı temsil eder.

CAST ve CONVERT fonksiyonları, sıklıkla veri tipleri arasında dönüşüm yapmak için kullanılırlar. Veri sınırlamalarına uygun bir şekilde dönüşüm yapmak, veritabanının doğru çalışmasını sağlar.


Veri Sınırlamalarının Kullanımı

Bir veritabanında tutulan verilerin doğru ve tutarlı olması, veri kurtarma işlemi esnasında yaşanabilecek sorunların önüne geçmek adına oldukça önemlidir. Veri sınırlamaları, bu amaçla kullanılan önemli bir araçtır. Veritabanı tasarımında kullanılan birçok sınırlama mevcuttur. Bunlar NOT NULL, UNIQUE, DEFAULT, CHECK, FOREIGN KEY ve PRIMARY KEY'dir. Bu sınırlamaların kullanımı, veritabanında tutulan verilerin doğru ve tutarlı olmasına yardımcı olur.

Örneğin, veritabanında müşteri bilgileri tutan bir tablo düşünelim. Bu tabloda, müşteri numarası alanının boş bırakılmaması gerektiğini belirtmek için NOT NULL sınırlaması kullanabiliriz. Ayrıca, müşteri adı ve soyadı alanının benzersiz olması gerektiğini dikkate alarak UNIQUE sınırlamasını ekleyebiliriz. Bu sayede, aynı ad ve soyada sahip iki müşterinin yanlışlıkla kaydedilmesi engellenir.

MüşteriNumarası Ad Soyad Telefon
1 Ahmet Yılmaz 555-555-5555
2 Mehmet Kaya 555-777-7777
3 Ayşe Yıldız 555-999-9999

Ayrıca, FOREIGN KEY ve PRIMARY KEY gibi sınırlamalar kullanarak birden çok tablo arasındaki bilgi ilişkilerini de sağlayabiliriz. Örneğin, siparişler tablosunda her siparişin bir müşteri tarafından verilmesi gerektiği bilgisini kaydetmek için, müşteriler tablosunda yer alan müşteri numarası alanını siparişler tablosunda FOREIGN KEY olarak kullanabiliriz.

Görüldüğü gibi, veri sınırlamalarının kullanımı verilerin tutarlılığını sağlamak adına oldukça önemlidir. Bu sınırlamalar sayesinde veritabanı tasarımı daha güvenli ve sağlam hale gelir.


Veri Hiyerarşileri

Veri hiyerarşileri, verileri belirli bir sıraya veya seçeneklere göre gruplandırmaya yarayan bir yapıdır. MySQL veritabanı tasarımında veri hiyerarşileri için ENUM ve SET veri tipleri kullanılır.

ENUM, belirli bir liste içerisindeki seçenekler arasından tek bir değer seçilmesine olanak tanır. Veri tipi, ENUM(liste, varsayılan) şeklinde tanımlanır. Liste, virgülle ayrılmış seçeneklerin listesini içerirken, varsayılan parametresi isteğe bağlıdır ve belirtilmezse NULL olur.

SET, ENUM'a benzer şekilde belirli bir liste içerisindeki seçenekler arasından birden fazla değer seçilmesine olanak tanır. Veri tipi, SET(liste, varsayılan) şeklinde tanımlanır. Liste, virgülle ayrılmış seçeneklerin listesini içerirken, varsayılan parametresi isteğe bağlıdır ve belirtilmezse NULL olur.

ENUM ve SET veri tipleri, veri girisini kolaylaştırmak ve veri bütünlüğünü sağlamak adına kullanışlıdır. Ancak, bu veri tipleri sınırlı sayıda seçeneğe olanak tanıdığı için, seçeneklerin değiştirilmesi güncellemeyi gerektirir. Ayrıca, ENUM ve SET veri tipleri sayısal hesaplamalar için uygun değillerdir.

Veri hiyerarşilerinin tanımlanması, veritabanında verilerin tutarlılığını ve veri manipülasyonunu kolaylaştırır. ENUM ve SET veri tipleri, veri girisini sınırlamak ve veri bütünlüğünü korumak adına kullanışlıdır. Ancak, veri tiplerinin sınırlı sayıda seçenek sunması ve sayısal hesaplamalara uygun olmaması gibi bazı dezavantajları da vardır.


Veri Güncelleme ve Silme İşlemlerinin Yönetimi

Veritabanları, yinelenen bilgiyi depolayarak, kullanıcıların veriye hızlı ve kolay bir şekilde erişmelerine olanak sağlar. Ancak, verilerde zamanla değişiklikler yapılması gerektiği için, güncelleme ve silme işlemleri sık yapılır.

Veritabanındaki bir kaydın güncellenmesi veya silinmesi, diğer kayıtları da etkileyebilir. Bu nedenle, bu işlemler sırasında dikkatli olunmalıdır. Veritabanında güncelleme veya silme işlemi yapmadan önce, veritabanı tasarımının iyi bir şekilde planlanması gerekir.

Verilerin güncellenmesi işlemi, herhangi bir sütunun değerinin değiştirilmesini içerir. Bunun için, UPDATE komutunu kullanabilirsiniz. Örneğin, "Müşteri adı" sütunundaki bir ismi değiştirmek için, aşağıdaki komutu kullanabilirsiniz:

UPDATE müşteriler SET müşteri_adı = 'Yeni İsim' WHERE müşteri_id = 100;

Silme işlemi ise, kaydın tamamen veritabanından kaldırılmasıdır. Bunun için, DELETE komutunu kullanabilirsiniz. Örneğin, "Urunler" tablosundaki bir ürünü silmek için aşağıdaki komutu kullanabilirsiniz:

DELETE FROM urunler WHERE urun_id = 200;

Güncelleme ve silme komutlarını kullanırken dikkatli olmak önemlidir. Veritabanında değerli bilgileriniz bulunabilir, bu nedenle yanlışlıkla kaydın yanlış bir şekilde değiştirilmesi veya silinmesi sonucunda veri kaybı yaşanabilir.

Ayrıca, veritabanında yapılan bu işlemlerin geri alınamaz sonuçları olabilir. Bu sebeple; UPDATE ve DELETE komutlarını çalıştırmadan önce, tüm verilerin yedeklenmesi ve bir test veritabanında deneme yapılması önerilir.

Sonuç olarak, veritabanındaki kayıtların güncellenmesi ve silinmesi işlemleri, dikkatli bir planlama ve doğru uygulama gerçekleştirilmesi gereken noktalardır. Herhangi bir değişiklik yapmadan önce, iyi bir planlama yapılmalı ve herhangi bir hata riskine karşı yedekleme işlemi gerçekleştirilmelidir.