MySQL Veri Tipleri

MySQL Veri Tipleri

MySQL veritabanında tarih ve saat veri tipleri de kullanılmaktadır Bu veri tipleri arasında DATE, TIME, TIMESTAMP ve YEAR yer almaktadır DATE veri tipi, sadece tarih değerleri için kullanılırken, TIME veri tipi sadece saat değerleri için kullanılır TIMESTAMP veri tipi ise hem tarih hem de saat değerleri için kullanılmaktadır YEAR veri tipi ise, yalnızca yıl değerlerini alabilir

MySQL Veri Tipleri

MySQL veritabanı, çeşitli veri tiplerini desteklemektedir. Her veri tipi belirli bir amaç için kullanılır ve kendine özgü sınırlamaları vardır. Bu nedenle, veri tipleri hakkında temel bir anlayışa sahip olmak, verilerinizin doğru şekilde yönetilmesini sağlamak için önemlidir.

Bununla birlikte, MySQL veri tipleri sadece karakter ve sayısal değerleri tutmaz, aynı zamanda tarihler, saatler ve diğer veri türlerini de ele alır. Bu makalede, MySQL veritabanında kullanılabilecek veri tipleri ve sınırlamaları hakkında bilgi veriyoruz.

  • Karakter Veri Tipleri: CHAR, VARCHAR, TEXT, TINYTEXT ve BLOB dahil olmak üzere MySQL veritabanında kullanılan karakter veri tipleri hakkında bilgi sahibi olun.
  • Nümerik Veri Tipleri: INTEGER, FLOAT, DECIMAL ve BOOLEAN gibi sayısal veri tipleri hakkında geniş bir açıklama elde edin.
  • Tarih ve Saat Veri Tipleri: DATE, TIME, TIMESTAMP ve YEAR gibi tarih ve saat veri tiplerinin kullanımı hakkında bilgi edinin.
  • Veri Tipleri Sınırlamaları: MySQL'deki veri tipleri sınırlamaları ve bunların kullanımı hakkında ayrıntılı bilgi alın.

Bütün bu veri tiplerini ve sınırlamalarını anlamak, verilerinizi doğru şekilde yönetmenizi sağlar ve veritabanınızdaki verilerin doğruluğunu arttırır.

Veri Tipi Açıklama Sınıflandırma
CHAR Sabit uzunluklu karakterler Karakter
VARCHAR Değişken uzunluklu karakterler Karakter
TEXT Uzun yazılı metinler Karakter
TINYTEXT Kısa yazılı metinler Karakter
BLOB Dosya ve diğer veri türleri Karakter
INTEGER Tam sayılar Nümerik
FLOAT Ondalıklı sayılar Nümerik
DECIMAL Ondalıklı sayılar Nümerik
BOOLEAN Evethayır soruları için kullanılan doğru/yanlış değerleri Nümerik

Veri tipleri sınırlamaları, veritabanındaki verilerin doğru şekilde yönetilmesine yardımcı olan kısıtlamalardır. MySQL başka bir veri tabanı yönetim sistemi ile karşılaştırıldığında, özellikle sınırlamalar açısından daha esnek bir yapıya sahip olduğu bilinmektedir.


Karakter Veri Tipleri

MySQL'de kullanabileceğiniz karakter veri tipleri arasında CHAR, VARCHAR, TEXT, TINYTEXT ve BLOB yer alır. CHAR veri tipi, sabit boyutlu bir karakter dizisi alabilir. Örneğin, CHAR(10) ifadesi ile 10 karakterden oluşan bir alan tanımlanabilir. Eğer girilen metin bu boyuttan daha kısa ise, kalan kısmı boşluklarla doldurulur. VARCHAR veri tipi ise değişken uzunluklu karakter dizileri için kullanılır. Bu veri tipinde veri, veritabanına eklenirken otomatik olarak boyutu belirlenir. Maximum boyutu 65,535 karakterdir. TEXT ve TINYTEXT veri tipleri, daha uzun karakter dizileri için kullanılır. Text veri tipinde, maksimum boyut sınırı yoktur. TINYTEXT veri tipinde ise, its maximum size is 255 bytes. BLOB veri tipi de karakter dizilerini saklamak için kullanılır. Fakat BLOB veri tipi, UNICODE formatında saklandığı için diğer veri tiplerine göre daha fazla yer kaplar.

Ayrıca karakter veri tipleri boyutlarını belirlemenin yanı sıra, kullanacakları karakter kümesini de belirlemek için COLLATE özelliği kullanılabilir. UTF8 genellikle tercih edilen bir karakter kümesidir.


Nümerik Veri Tipleri

Nümerik veri tipleri, MySQL veritabanında sıklıkla kullanılan tipler arasındadır. INTEGER veri tipi, tam sayılar için kullanılırken, FLOAT veri tipi virgüllü sayılar için kullanılır. DECIMAL veri tipi, hassas sayılar için bir seçenektir ve BOOLEAN veri tipi ise sadece doğru veya yanlış değerleri için kullanılabilir. Bu veri tipleri, farklı hesaplama veya matematiksel işlemler için uygun olan değerler için kullanılır.

INTEGER veri tipi, özellikle id numaraları gibi tam sayı değerleri için kullanılır. Bu değerlerin sıralanması veya karşılaştırılması gereken alanlarda kullanılmaktadır. FLOAT veri tipi, virgüllü sayılar için kullanılan bir tiptir. Bu sayılar, ondalık sayılar gibi işlem gereken alanlarda kullanılabilir.

DECIMAL veri tipi, hassas sayılar için bir seçenek olarak kullanılır. Bu tipteki veriler, matematiksel hesaplamalar gibi hassas işlemler gerektiren yerlerde kullanılabilecek değerlerdir. BOOLEAN veri tipi ise, sadece doğru veya yanlış değerlerinin kaydedilmesi gereken durumlarda kullanılabilecek bir tiptir. Verilerin doğru veya yanlış olarak belirlenmesi gereken sorgularda sıklıkla kullanılır.

Bu veri tipleri farklı sınırlamalarla birlikte kullanılabilirler ve bu sınırlamalar sayesinde çeşitli işlemler gerçekleştirilebilir. Örneğin, bir INTEGER kolonunun PRIMARY KEY olarak sınırlandırılması, tekil değerlerin depolanmasını sağlar ve sorgularda hızlı bir şekilde sonuç alınmasına yardımcı olur. Benzer şekilde, NOT NULL sınırlandırması da, veritabanında boş değerlerin depolanmamasını sağlar.

Oluşturulan tabloların yapılarına ve ihtiyaçlara göre nümerik veri tipleri farklı şekillerde kullanılabilirler. Ayrıca, veri tiplerinin sınırlamaları kullanıcıya fayda sağlayacak şekilde düzenlenebilir.


Tarih ve Saat Veri Tipleri

MySQL veritabanı, tarih ve saat verilerini saklamak için birkaç veri tipi sağlar. DATE, TIME, TIMESTAMP ve YEAR veri tipleri tarih ve saat verilerini tutmak için kullanılabilir.

DATE veri tipi, sadece tarih değerlerini tutmak için kullanılır. Bu veri tipi, 'YYYY-MM-DD' şeklinde girilen değerleri kabul eder. Örneğin, 2021-11-25.

TIME veri tipi, sadece saat değerlerini tutmak için kullanılır. Bu veri tipi, 'HH:MM:SS' şeklinde girilen değerleri kabul eder. Örneğin, 15:30:10.

TIMESTAMP veri tipi, hem tarih hem de saat değerlerini tutmak için kullanılır. Bu veri tipi, 'YYYY-MM-DD HH:MM:SS' şeklinde girilen değerleri kabul eder. Örneğin, 2021-11-25 15:30:10.

YEAR veri tipi, yalnızca 2 veya 4 haneli yıllar için kullanılır. Bu veri tipi, 'YYYY' veya 'YY' şeklinde girilen değerleri kabul eder. Örneğin, 21 veya 2021.

Veri tabanlarında tarih ve saat değerleri sıklıkla kullanılır ve bu değerlerin doğru şekilde saklanması önemlidir. MySQL veri tipleri, tarih ve saat değerlerini tutmak için esnek ve kolay bir yol sağlar.

Tablolarınızda tarih ve saat değerleri tutarken, hangi veri tipinin en uygun olduğuna karar vermek önemlidir. Veri tipinin yanı sıra, tarih ve saat biçimleri de önemlidir. Doğru biçimde girilen tarih ve saat değerleri, kolayca işlenebilir ve analiz edilebilir.

Sonuç olarak, MySQL veri tabanının sunduğu tarih ve saat veri tipleri size daha fazla esneklik sağlar. Her bir veri tipinin özelliklerini anlamak, verilerinizi daha doğru ve anlamlı hale getirebilir.


DATE Veri Tipi

DATE Veri Tipi

DATE veri tipi, yalnızca tarihi tutmak için kullanılır. YYYY-MM-DD formatında depolanır ve birkaç farklı şekilde kullanılabilir.

Bir DATE veri tipini kullanarak, tarihi depolayabilir ve raporlarınızda veya sorgularınızda filtrelemeler yapabilirsiniz. Örneğin, müşterilerinizin doğum tarihlerini veya siparişlerin tarihlerini depolayabilirsiniz.

Bir DATE veri tipi örneği aşağıda verilmiştir:

ID Ad Soyad Doğum Tarihi
1 Ahmet Yılmaz 2000-05-15
2 Can Öz 1998-11-22

Bu örnekte, Doğum Tarihi sütununda veriler bir DATE veri tipi olarak depolanmaktadır. Tarihin formatı şablonu olan YYYY/MM/DD formatında saklandığını belirtmekle birlikte, MySQL için sadece YYYY-MM-DD format geçerlidir.

Ayrıca, bir DATE veri tipine örnek olarak, bir haftalık bir rapor almak istediğinizi varsayalım. Bir sorgu yazarak tarihi belirleyebilir ve müşterilerinizin tüm siparişlerini bu tarihte yapılan siparişlerle birlikte listeleyebilirsiniz.

Bir DATE veri tipinin sınırlamaları hakkında da bilgi edinmek önemlidir. Örneğin, 0000-00-00 gibisi bir DATE değeri geçersizdir. Bu nedenle, veri tipi kullanımındaki ayrıntılara dikkat edilmelidir.


TIME Veri Tipi

MySQL'deki TIME veri tipi, sadece bir gün içinde geçen zamanı depolayan bir veri tipidir. Bu veri tipi, TIME'ta saat, dakika ve saniyelerin yanı sıra mikrosaniyeleri de saklayabilir. TIME tipinde, en az 00:00:00 ve en fazla 23:59:59 arasında değerler saklanabilir.

TIME tipi, zamanlamayla ilgili verileri depolamak için kullanışlıdır. Örneğin, bir video oyunu için bir liderlik tablosu tasarlıyorsanız, oyuncuların belirli bir düzeyde ne kadar zaman harcadıklarını öğrenmek isteyebilirsiniz. Bu amaçla, zaman verilerini TIME veri tipi ile saklayabilirsiniz.

TIME tipinin kullanımını anlamak için bir örnek inceleyelim: bir havaalanı sistemine ait bir veritabanı, her uçuşun kalkış ve varış saatlerini kaydedebilir. Bu saati DAY, MONTH ve YEAR verileriyle birleştirmeden sadece saati, dakikayı ve saniyeyi kaydettiğinizde, her uçuşun kalkış ve varış saatini daha az miktarda depolayabilirsiniz.

Aşağıda, TIME veri tipi kapsamında kullanılabilecek bazı özellikleri ve sınırlamaları listeliyoruz:

  • TIME tipi, saat, dakika ve saniyeleri depolayabilir
  • TIME tipinde, değerler 00:00:00 ve 23:59:59 arasında olabilir
  • TIME tipi, gün, ay ve yıl ile birleştirilerek DATETIME tipi haline getirilebilir
  • TIME tipi, MILITARY TIME formatına göre saklanır, yani 24 saatlik zaman biçimini kullanır
  • TIME tipi, DAY, MONTH ve YEAR verileri yerine sadece time bilgisini sakladığı için daha az depolama alanı gerektirir

TIME veri tipi, zaman verilerini depolamak için kullanışlı ve veri tabanlarında sıkça kullanılır. Örnek uygulamalar arasında havaalanı sistemleri, otomasyon sistemleri, video oyunları ve zamanlamayla ilgili diğer birçok veri depolama alanı yer alabilir.


Veri Tipleri Sınırlamaları

MySQL veritabanında kullanılan veri tipleri, sınırlamaları ile birlikte çok çeşitli işlemler yapmamızı sağlar. Verilere sınırlama eklemek, verilerin doğru ve güvenilir bir şekilde saklanmasını sağlar ve verilerin kaybolmasını veya yanlış kullanılmasını önler. Bu nedenle, sınırlamalar MySQL veritabanlarında oldukça önemlidir.

MySQL'deki veri tipleri sınırlamaları sadece belirli veri tipine sahip verileri saklamak için değil, aynı zamanda veri akışını ve sütunlar arasındaki bağlantıyı da kontrol etmek için kullanılabilir. Örneğin, FOREIGN KEY sınırlaması ile bir sütunun başka bir tablodaki sütunla eşleşmesi sağlanabilir. Bu, verilerin ilişkili olduğu tablolarda düzenli ve düzgün bir şekilde saklanmasını sağlar.

Aşağıda, MySQL'deki veri tiplerinin sınırlamaları hakkında daha ayrıntılı bilgi vereceğiz:

NOT NULL sınırlaması, sütundaki verilerin boş veya null olamayacağını belirler. Bu, belirli bir sütunda 'null' verileri olan kayıtları önlemek için kullanılabilir. Örneğin, bir kullanıcının isim ve soyisim bilgisinin mutlaka doldurulması gerekip gerekmediğini belirlemek için kullanılabilir.

PRIMARY KEY sınırlaması, bir sütundaki verilerin benzersiz olmasını sağlar. Bu sınırlamayı kullanarak, bir tabloda bulunan her bir kaydın benzersiz bir tanımlayıcısı olabilir. Bu, verilerin doğru bir şekilde saklanmasını ve tabloda yapılan tüm işlemlerin doğru bir şekilde yürütülmesini sağlar.

FOREIGN KEY sınırlaması, bir tablodaki bir sütunda bir başka tabloya atıfta bulunarak ilişki kurmamızı sağlar. Bu ilişki, verileri daha tutarlı bir şekilde saklamak ve değiştirmek için kullanılabilir. Örneğin, bir ürün tablosunda bir sütun, bir başka tablodaki bir sütuna atıfta bulunarak ürünlerin kategorize edilmesini sağlayabilir.

MySQL'deki veri tiplerinin sınırlamaları, verilerin güvenli bir şekilde saklanmasını sağlar ve veri manipülasyonlarını kolaylaştırır. Bu nedenle, bu sınırlamaların nasıl kullanılacağı konusunda bilgi sahibi olmak, bir MySQL veritabanı kullanıcısı için çok önemlidir.


NOT NULL Sınırlaması

MySQL veritabanında veri tiplerinin kullanımını açıklamadan önce MySQL'deki veri tiplerinin sınırlamalarını anlamak önemlidir. Veri tipleri sınırlamaları, veri girişlerinde belirli kurallara uyulmasını sağlar ve hataların önüne geçer. NOT NULL sınırlaması, verilerin boş veya null olamayacağını belirleyen bir sınırlamadır. Bu sınırlama, bir tablonun kolonlarına uygulanabilir ve herhangi bir veri girişinde NULL değeri kullanımını engeller.

NOT NULL sınırlaması, bir veri girişinin her zaman bir değere sahip olmasını sağlar. Örneğin, tabloda müşterilerin ad ve soyadı gibi kolonlar varsa, bu kolonlarda herhangi bir boş veri girişi yapılırsa, NULL değerler saklanmaz. NOT NULL sınırlaması kullanıldığında, veri girişinin boş bırakılması engellenir ve sadece dolu bir değer girilmesi istenir.

Bu sınırlama, tablo oluşturulurken veya bir kolon değiştirilirken eklenir. NOT NULL sınırlaması, bir tablodaki herhangi bir kolona veya birden fazla kolona uygulanabilir. Tablodaki bir ya da birden fazla kolona uygulandığında, bu kolonlar herhangi bir NULL girişi almazlar. Bu sayede veritabanındaki tutarlılık sağlanır ve veri kaybı önlenmiş olur.

Örnek NOT NULL Kullanımı
1 CREATE TABLE öğrenciler (
id INT(11) NOT NULL,
ad VARCHAR(50),
soyad VARCHAR(50) NOT NULL,
ders VARCHAR(50) NOT NULL
);
2 CREATE TABLE kitaplar (
id INT(11) PRIMARY KEY auto_increment,
ad VARCHAR(50) NOT NULL,
yazar VARCHAR(50) NOT NULL
);

Yukarıdaki örneklerde, sınırlama NOT NULL anahtar kelimesiyle tanımlanmıştır.İlk örnekte, sınırlama soyad ve derse uygulanırken, ikinci örnekte sınırlama ad ve yazar alanlarına uygulanmıştır. Sınırlama uygulandıktan sonra, sadece dolu veri girişleri onaylanır ve boş bir değer kullanmak sistem tarafından engellenir.


PRIMARY KEY Sınırlaması

MySQL'de PRIMARY KEY sınırlaması, bir tablodaki tekil bir öğeyi tanımlamak için kullanılır. Bir PRIMARY KEY alanı, NULL olmayan ve benzersiz öğeler içermelidir. Veritabanı yöneticisi, veritabanı tasarımına bir PRIMARY KEY ekleyebilir veya daha sonra bir tabloya bir PRIMARY KEY ekleyebilir. PRIMARY KEY, diğer sınırlamalarla birleştirilebilir.

Örneğin, öğrenci tablosunu ele alalım. Öğrenci tablosunda, 'ogr_no' adlı bir sütun var ve bu alanın tekil olması gerekiyor. Biz de 'ogr_no' sütununu PRIMARY KEY olarak belirleyebiliriz. Bu, öğrenci numarasının benzersiz olduğu ve tek bir değer için görsel olarak tanımlandığı anlamına gelir.

Bu sınırlamanın bir diğer önemli özelliği ise, NULL değeri içermemesidir. Eğer 'ogr_no' sütununun bazı değerleri NULL ise, bu sütunu bir PRIMARY KEY olarak belirleyemeyiz. Bunu engellemek için, bir NOT NULL sınırlaması da tanımlanabilir.

PRIMARY KEY, farklı veri tiplerinde de kullanılabilir.Örneğin, INTEGER ve CHAR veri tipleriyle birlikte kullanılabilir. Ancak, VARCHAR ve TEXT gibi daha büyük veri tipleri için kullanmak uygun değildir. Bunun nedeni, benzersizliği garanti etmek için bir indeks oluşturulması gerektiği ve bu indeksin yetersiz özelliklerine dayanmasıdır.

Sonuç olarak, MySQL'deki PRIMARY KEY sınırlaması, tekil öğeleri tanımlamak ve boşluğu engellemek için kullanılan bir sınırlamadır. Farklı veri tiplerinde kullanılabilen bu sınırlama, veritabanı tasarımı açısından büyük önem taşır.


FOREIGN KEY Sınırlaması

MySQL veritabanında kullanılan FOREIGN KEY sınırlaması, bir tablodaki kayıtların diğer tablodaki kayıtlara bağlanmasını sağlar. FOREIGN KEY, bir tablonun alanlarından birini başka bir tablodaki PRIMARY KEY veya UNIQUE alanıyla eşleştirir. Bu, iki farklı tablonun verilerinin birbirleriyle ilişkilendirilmesine izin verir. Bu sınırlama, veritabanının bütünlüğünü koruyarak verileri yönetmenizi kolaylaştırır.

Bir FOREIGN KEY sınırlaması eklemek için, öncelikle iki tabloyu oluşturmanız gerekir. İlk tablodaki alan, ikinci tablodaki alanla eşleştirilecek bir referans olarak ayarlanır. İkinci tablo ise, FOREIGN KEY sınırlamasıyla ilişkilendirilecek alanı içerir. Bu sınırlamayla, bir tablodaki kayıtların diğer tablodaki kayıtlara bağlantısı kolaylıkla yapılabildiği için veri bütünlüğü sağlanır.

FOREIGN KEY sınırlaması eklerken bazı önemli noktalar vardır. Örneğin, FOREIGN KEY sınırlaması eklemeden önce, ilişkili tablolardaki alanların veri tipleri eşleştirilmelidir. Ayrıca, FOREIGN KEY sınırlaması eklediğinizde, ilişkideki tabloların tüm verilerini yüklemiş olmanız gerekir, çünkü FOREIGN KEY sınırlaması, tablonun mevcut verilerine uygulanacaktır.

FOREIGN KEY sınırlaması, bir tablonun diğer tabloya bağlı olduğu bir çoklu ilişki senaryosunda da kullanılabilir. Bu durumda, bir tablonun birincil anahtar alanı, ikinci tablodaki birincil anahtar alanıyla eşleştirilir ve üçüncü (veya daha fazla) tabloda FOREIGN KEY sınırlaması kullanılır.

Bir tablodaki verileri silerken veya güncellerken, FOREIGN KEY sınırlamalarına dikkat etmeniz gerekir. Bir kaydı silmeniz veya bir alanı güncellemeniz durumunda, FOREIGN KEY sınırlaması sayesinde ilişkili diğer kayıtlar da etkilenebilir. Bu yüzden FOREIGN KEY sınırlaması kullanırken dikkatli olmak önemlidir.