MySQL, açık kaynaklı bir veritabanı yönetim sistemi olarak kullanılır Veri tipleri ve sınırlamaları verilerin farklı şekillerde saklanmasını ve kullanılabilir hale gelmesini sağlar Veri tipleri sayısal veriler, metinler, tarih ve saatler gibi farklı veri türlerine sahip olabilirler Doğru veri tipi seçimi verilerin doğru işlenmesini sağlar Numeric ve string veri tipleri olmak üzere iki ana kategori altında gruplandırılabilirler Veri tiplerinin yanında kullanılan sınırlamalar da veri bütünlüğünü ve tutarlılığını sağlamak açısından son derece önemlidir Ayrıca, veri yedekleme ve geri yükleme işlemleri ile verilerin güvenliği sağlanabilir Numeric veri tipleri arasında TINYINT, SMALLINT, INT, BIGINT, FLOAT ve DOUBLE yer alır DOUBLE, ondalık sayılar için en sık kullanılan veri tipidir ve FLOAT'tan daha doğru bir sonuç verir

MySQL, açık kaynaklı bir veritabanı yönetim sistemi olarak bilinir. İçerdiği veri tipleri ve sınırlamalar sayesinde verilerin farklı şekillerde saklanabilir ve kullanılabilir hale getirilebilir. Bu makale, MySQL veri tipleri ve sınırlamaları hakkında temel bilgiler içermektedir.
Veritabanı tasarımı için doğru veri tiplerinin seçilmesi verilerin doğru işlenmesini sağlar. Veri tipleri, sayısal veriler, metinler, tarih ve saatler gibi farklı veri türlerine sahip olabilirler. Bu nedenle, veri tipi seçimi verilerin doğru şekilde muhafaza edilmesi açısından son derece önemlidir.
Veri Tipleri
Veri tipleri, veritabanında kaydedilen datanın hangi formatta tutulacağını belirler. MySQL kullanıcıları için, veri tipleri ve sınırlamalar söz konusu olduğunda doğru seçim yapmak son derece önemlidir. Veri tipleri, iki ana kategori altında gruplandırılabilir: numeric veri tipleri ve string veri tipleri.
Numeric Veri Tipleri: TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE gibi veri tipleri numeric (sayısal) verilerin depolanması için kullanılır. TINYINT küçük bir tam sayı için kullanılan veri tipidir. SMALLINT, INT ve BIGINT, artan boyutlarda sayıları tutmak için kullanılır. FLOAT ve DOUBLE, daha karmaşık sayıları daha büyük hassasiyetle depolamak için kullanılır.
String Veri Tipleri: CHAR, VARCHAR, TEXT, BLOB gibi veri tipleri karakter ve metin verilerinin depolanması için kullanılır. CHAR, her zaman aynı boyutta bir karakter dizisi için kullanılır. VARCHAR, değişken boyutlu karakterlerin saklanması için kullanılır. TEXT, uzun metin veya dizi verileri için en yaygın kullanılan veri tipidir. BLOB, küçük boyuttaki bit verileri için kullanılan base64 ile kodlu veri tipidir.
Bu veri tipleri, verilerin doğru bir şekilde depolanmasını sağlamakla birlikte, verilerin saklanması ve işlenmesi sırasında doğru biçim ve tarzda kullanılması gereken sınırlamalarla da birlikte gelir.
NOT NULL, bir alanın boş kalmasını önleyen bir sınırlamadır, UNIQUE sınırlaması, bir alanın benzersiz değerlere sahip olmasını sağlar. Bunlar, veri tutarlılığı ve bütünlüğü için son derece önemli olan sınırlamalardır. Bu sınırlamaları kullanarak, veri tabanı hatalarından kaçınarak verilerin doğru bir şekilde saklanmasını garanti altına alabilirsiniz.
MySQL veri yedekleme ve geri yükleme işlemleri, hem veri kaybını önlemek hem de verilerin kaybolması durumunda onları kurtarmak için son derece önemlidir. Veri yedekleme işlemi, verileri bir yedek dosyasına aktarmak için mysqldump komutunu kullanarak gerçekleştirilir. Veri geri yükleme işlemi, verilerin yedekten geri yüklenmesi için mysql komutunu kullanarak yapılır.
Sonuç olarak, doğru veri tipi seçimi ve doğru sınırlama kullanımı, veritabanlarında veri bütünlüğünün korunmasını sağlar. Ayrıca, veri yedekleme ve geri yükleme işlemleri ile de veri tabanları korunarak veri kaybı duruma karşı önlenebilir.
Numeric Veri Tipleri
Numeric veri tipleri, özellikle matematiksel işlemler için idealdir. MySQL veritabanı bu alanda birçok farklı veri tipi sağlar. Bunlar TINYINT, SMALLINT, INT, BIGINT, FLOAT ve DOUBLE gibi veri tipleridir.
- TINYINT: Bu veri tipi, -128 ila 127 arasındaki küçük bir tam sayı için kullanılır. Örneğin, birçok giriş için sadece evet/hayır veya doğru/yanlış gibi iki olası yanıt gerektirdiğinde ideal bir seçimdir.
- SMALLINT: Bu veri tipi, -32768 ila 32767 arasındaki bir tam sayı için kullanılır. Küçük ve sınırlı bir aralığı olduğundan kullanımı oldukça yaygındır.
- INT: Bu veri tipi, -2147483648 ila 2147483647 arasındaki bir tam sayı için kullanılır. Büyük bir aralığı olduğundan, genellikle büyük veri tabanları için idealdir. 4 byte yer kaplar ve oldukça hızlı bir şekilde işlem yapar.
- BIGINT: Bu veri tipi, -9223372036854775808 ila 9223372036854775807 arasındaki bir tam sayı için kullanılır. Diğer veri tiplerinden daha büyük bir aralık sağlar, ancak daha az hızlıdır.
- FLOAT: Bu veri tipi, ondalık sayılar için kullanılır. En fazla 23 karakterlik rakamsal bir kısmı olabilir ve 8 byte yer kaplar. Hızlı bir şekilde işlem yapar ancak doğruluğu düşüktür.
- DOUBLE: Bu veri tipi, ondalık sayılar için kullanılır ve FLOAT'tan daha doğru bir sonuç verir. 8 byte yer kaplar ve yine hızlı bir şekilde işlem yapar. En fazla 53 karakterlik rakamsal bir kısmı olabilir.
Bu veri tiplerini kullanırken, doğru olanı seçmeye dikkat etmek önemlidir. İhtiyacınız olan aralık ve doğruluğun ne kadar önemli olduğuna karar vererek doğru veri tipini seçmek en iyi yol olacaktır.
TINYINT
MySQL'de, küçük bir tam sayı için kullanılan veri tipidir. TINYINT, 1 byte hafıza alanına ihtiyaç duyar ve sadece -128 ila 127 arasındaki tam sayıları tutabilir. Bu veri tipi, genellikle bir evet/hayır veya doğru/yanlış durumunu tutmak için kullanılabilir. Örneğin, bir tablo içindeki bir sütunun is_active adıyla tanımlandığı ve yalnızca 1 "evet" ve 0 "hayır" değerlerini içerdiği durumlarda kullanılır.
TINYINT, daha az kullanılan bir veri tipi olsa da, büyük ölçekte veritabanlarında saklanacak veriler için ekonomik bir çözümdür. Verilerin saklama alanını optimize etmek için TINYINT, SMALLINT veya MEDIUMINT gibi veri tipleri tercih edilebilir.
Özetle, TINYINT, sınırlı verileri tutmak için kullanılan bir veri tipidir. Alan kullanımında önemli bir fark yaratmaz, ancak büyük veritabanlarının optimize edilmesine yardımcı olabilir.
DOUBLE
MySQL'de en yoğun kullanılan veri tiplerinden biridir. Ondalık sayılar için kullanılır ve ileri seviye bir veri tipidir. DOUBLE veri tipinde kaydedilecek olan değerin büyüklüğüne göre farklı boyutlarda ayrılır. DOUBLE(4,2) gibi bir ifade kullanarak, 4 basamaklı sayıdan önce 2 basamak ondalıklı kısmın saklanacağını ifade eder. Yani, kaydedilecek sayı 987.6543 ise, veri tabanında 987.65 şeklinde saklanacaktır.
Bu veri tipi ayrıca FLOAT veri tipine kıyasla daha büyük ve daha hassastır. FLOAT veri tipi, depolama alanı açısından DOUBLE veri tipinden daha az yer kaplar ancak daha az hassas bir veri tipidir. Bu nedenle, matematiksel hesaplamalar yaparken DOUBLE veri tipi tercih edilir.
String Veri Tipleri
String Veri Tipleri
MySQL içinde kullanılan string veri tipleri arasında CHAR, VARCHAR, TEXT ve BLOB bulunmaktadır. Bu veri tipleri ile metin ve karakter verileri kolaylıkla depolanabilir.
CHAR: Sabit bir karakter sayısı belirtilen CHAR veri tipi, belirtilen karakter sayısı kadar yer kaplama özelliğine sahiptir. Örneğin, CHAR(10) kullanıldığında, veritabanı karakter sayısına bağlı olarak 10 byte yer kaplayacaktır.
VARCHAR: Metin verilerinin depolanması için en sık kullanılan veri tipi olan VARCHAR, değişken boyutlara izin verir. Yani, tanımlanan alan içindeki veri, istenilen boyuta kadar depolanabilir. Örneğin, VARCHAR(255) kullanıldığında, en fazla 255 karakter depolanabilir.
Veri Tipi | Maximum Boyut |
---|---|
CHAR | 255 karakter |
VARCHAR | 65,535 karakter |
TEXT | 4GB |
TEXT: Metin, sayı ve sembol verilerinin büyük miktarda depolanmasını sağlayan TEXT veri tipi, değişken boyutlara olanak tanır. TEXT veri tipinin boyutu, depolanması gereken metnin uzunluğuna bağlıdır. Örneğin, bir blog yazısı gibi uzun bir yazıyı depolarken TEXT veri tipi kullanılabilir.
BLOB: Büyük miktarda binary data depolamak için kullanılan BLOB veri tipi, değişken boyutlara izin verir. BLOB veri tipi özellikle küçük boyutlu bit verileri için kullanılmaktadır ve genellikle base64 ile kodlanır.
VARCHAR
VARCHAR, metin verileri için en sık kullanılan veri tipidir. Bu veri tipi kullanıldığında, belirli bir uzunluğa sahip karakter dizileri kaydedebilirsiniz. Uzunluğu belirlemek için parantez içinde kullanılır. Örneğin, VARCHAR(50) belirli bir veri alanı için en fazla 50 karakterlik bir karakter dizisi kaydedebilirsiniz.
Peki, neden VARCHAR kullanmalıyız? Kelime işleme programlarında ve web uygulamalarındaki metin verileri gibi değişken uzunluklu verilerin saklanması gerektiğinde VARCHAR, Ideal veri tipidir. Ayrıca, diğer veri tiplerine göre daha az bellek tüketir, bu da performansı artırır ve depolama maliyetini azaltır.
Bir örnek vermek gerekirse, bir müşterinin adını veya iletişim bilgilerini kaydetmek istediğimizde VARCHAR kullanabilirsiniz. Bu durumda, veri tipi hangi alanın saklandığına bağlı olarak değişir. Ad alanı için 20 karakterlik bir VARCHAR veri tipi yeterli olabilirken, e-posta alanı için 50 karakterlik bir tip kullanmanız gerekebilir.
VARCHAR veri tipinin avantajlarına ek olarak, bazı dezavantajları da vardır ve bunlar depolama alanını tüketebilir. Kaydedilen veri, kullanılmaktan önce boşluklar gibi gereksiz karakterleri içerebilir ve bu da depolama alanını kullanır. Bu nedenle, veri tasarımı ve saklama alanının optimize edilmesine özen gösterilmelidir.
Özetlemek gerekirse, VARCHAR, metin verileri için ideal ve esnek bir veri tipidir, ancak tasarım sürecinde, veri gereksinimleri doğru bir şekilde planlanmalı ve veri boyutu en aza indirgenmelidir.
BLOB
BLOB, Binary Large Object, küçük boyuttaki bit verileri için kullanılan ve base64 ile kodlanan bir veri tipidir. Bu veri tipi, özellikle resim, video veya müzik gibi medya dosyalarının depolanması için önemlidir. BLOB, dosyanın yüksek kaliteli (HD) veya düşük kaliteli olmasına bakılmaksızın, sıkıştırılmadan depolanır ve diğer verilerden ayrı olarak yönetilir.
BLOB veri tipi, tercihen küçük dosyalarda kullanılmalıdır. Örneğin, bir logo veya küçük bir resim, bir BLOB veri tipi olarak saklanabilir. Ancak, büyük dosyalar (örneğin, 500 MB bir video), diğer depolama seçenekleri (örneğin, Amazon S3) kullanılarak saklanmalıdır.
- BLOB veri tipi, binlerce ve hatta milyonlarca satıra sahip olan veritabanları için yüksek bir tüketim anlamına gelebilir.
- BLOB veri tipi, çoğu yedekleme aracı tarafından desteklenmez. Bu nedenle, bir veritabanı yedekleme işleminde BLOB verileriyle ilgili sorunlar ortaya çıkabilir.
BLOB veri tipini kullanırken, aşağıdaki gibi bir tablo yapısı önerilir:
ID | Dosya Adı | Dosya Türü | Dosya Boyutu | Dosya İçeriği |
---|---|---|---|---|
1 | logo | jpg | 30 KB | BLOB VERİTİPİ |
Bu yapı veritabanına küçük dosyaları eklemek için kullanılır ve içerik ayrı bir satırda saklanır. Dosya adı, dosya türü ve dosya boyutu, veritabanına yüklenen dosyanın bilgilerini tutar ve sorgulama işlemleri için kullanılabilir.
Veri Sınırlamaları
Veri sınırlamaları, veritabanlarında bir alanın sahip olması gereken özellikleri belirlemeye yardımcı olur. Bu sınırlamalar, verilerimizin doğru, eksiksiz ve güvenilir bir şekilde depolanmasını sağlar. İşte en sık kullanılan veri sınırlamalarından bazıları:
Bu sınırlama, bir alanın zorunlu olarak doldurulması gerektiğini belirler. Yani, bir kayıt eklerken o alana mutlaka veri eklenmesi gerektiğini söyler. Örneğin, bir kullanıcının adını kaydetmek istiyorsak, ad alanında NOT NULL kullanarak adın boş bırakılamayacağını belirtebiliriz.
Bu sınırlama, bir alanın benzersiz değerlere sahip olmasını sağlar. Yani, bir kayıt eklerken o alan için aynı değerden başka bir kayıt eklenemeyeceğini belirtir. Örneğin, kullanıcıların e-posta adreslerini kaydetmek istiyorsak, UNIQUE kullanarak e-posta adresinin yalnızca bir kez kullanılabileceğini belirtebiliriz.
Sınırlamalar belirlemek, verilerimizde hataların oluşmasını önlemek için oldukça önemlidir. Ancak, sınırlamalar kullanılırken, gereksiz sınırlamaların da veri kaybına neden olabileceği unutulmamalıdır. Bu nedenle, sınırlamalar dikkatli bir şekilde kullanılmalı ve verilerimizin doğru bir şekilde depolanmasını sağlayacak şekilde ayarlanmalıdır.
NOT NULL
MySQL veri tiplerinde bir alanın boş geçilmesini önlemek için NOT NULL sınırlaması kullanılır. Bu sınırlama, bir veritabanı alanının değerinin her zaman belirtilmesini sağlar. NOT NULL sınırlaması, bir veritabanı tablosunun herhangi bir kolonuna kolaylıkla uygulanabilir.
Örneğin, bir müşteri tablosunda, müşteri adı, e-posta adresi veya telefon numarası gibi bilgilerin her zaman gerekli olduğunu varsayalım. Bu durumda, bu alanları boş bırakmaya izin vermemek için NOT NULL sınırlaması kullanılır. Bu sayede verilerin doğruluğu ve bütünlüğü sağlanır.
NOT NULL sınırlaması, bir kolonun değerini gerektirdiğinden dolayı, bu kolonun bir varsayılan değer ile oluşturulması gerekmektedir. Böylece, kayıt yapıldığında, bu alanın değeri belirtilmediği takdirde yerine kolonun varsayılan değeri kullanılır.
ID | Name | |
---|---|---|
1 | John Doe | john@example.com |
2 | Jane Doe | NULL |
- Yukarıdaki örnekte, ID ve Name alanları her kayıt için değer alırken, Email alanı ikinci kayıtta boş kalmıştır.
- Bu durumda, NOT NULL sınırlaması uygulanırsa, Email alanının her zaman dolu olması sağlanabilir.
UNIQUE
UNIQUE sınırlaması, bir veritabanı alanının benzersiz değerlere sahip olmasını sağlar. Bu, alanın her satırında sadece bir kez kullanılabilen özel bir değere sahip olmasını sağlar. Örneğin, bir kullanıcının e-posta adresi veritabanında UNIQUE olarak ayarlanabilir, böylece eşsiz bir e-posta adresi kullanılması sağlanır.
Bir UNIQUE sınırlaması ayarlamak için, bir ALTER TABLE komutu kullanılır. Aşağıdaki örnek, 'Users' tablosunda 'email' alanına UNIQUE sınırlaması ekler:
Komut | Açıklama |
---|---|
ALTER TABLE Users | Değiştirilecek tablo adı |
ADD UNIQUE(email) | UNIQUE sınırlama eklenecek alan adı |
Bu komut, 'Users' tablosundaki 'email' alanına UNIQUE sınırlaması ekler. Bu, 'email' alanının her satırında sadece bir kez kullanılabileceği anlamına gelir.
UNIQUE sınırlaması, özellikle bir veritabanında birden fazla kullanıcı hesabı varsa, verilerin çakışmasını önlemek için önemlidir. Ayrıca, bir alanın UNIQUE olarak ayarlanması, verilerin doğruluğunu ve tutarlılığını arttırır.
Veri Yedekleme ve Geri Yükleme
MySQL verilerinizin kaybolması veya hasar görmesi durumunda, verilerinizi yedeklemek önemlidir. Veri yedekleme işlemi, özellikle büyük veritabanları için zaman alıcı bir işlem olabilir. Ancak, bir kez yedekleme yapıldıktan sonra, verilerinizi kolayca geri yükleyebilirsiniz. MySQL, veri yedekleme ve geri yükleme işlemleri için kullanışlı araçlar sağlar.
mysqldump komutunu kullanarak veri yedeklemesi yapabilirsiniz. Bu komut, bir masaüstü uygulaması veya web arayüzü kullanarak manuel olarak yapılabileceği gibi, bir betik kullanarak da yapılabilir.
Veri yedeklemesi yapmak için şu adımları takip edin:
- Veritabanı sunucusuna bağlanın;
- Yedeklemek istediğiniz veritabanını seçin;
- Yedekleme işlemini yapmak için mysqldump komutunu kullanın;
- Yedekleme dosyasını bir konuma kaydedin.
Veri yedekleme işlemi sırasında, yoksaymanız gereken tablolar veya eklemek istediğiniz ek açıklamalar gibi ek seçenekler kullanabilirsiniz.
Gerçek veritabanınızda bir sorun yaşarsanız, yedekleme dosyanızı kullanarak verilerinizi geri yükleyebilirsiniz. Bunun için mysql komutunu kullanmanız gerekiyor.
Veri geri yükleme işlemi için şu adımları takip edin:
- Veritabanı sunucusuna bağlanın;
- Geri yüklemek istediğiniz veritabanını oluşturun alternatif olarak silin devam edin;
- mysql komutunu kullanarak yedekleme dosyasını geri yükleyin;
- Veri geri yükleme işlemini tamamlamak için işlemi doğrulayın.
Veri geri yükleme işlemi sırasında, tablolar oluşturulmadan önce, veritabanı isimleri, komutları vb. gibi seçenekleri belirtmek için ek seçenekler kullanabilirsiniz.
Veri yedekleme ve geri yükleme işlemleri, MySQL'deki verilerinizi etkin bir şekilde korumanıza yardımcı olur. Bu işlemleri düzenli olarak yaparak, veritabanınızda beklenmedik bir problem oluştuğunda kaybettiğiniz verileri kolayca geri yükleyebilirsiniz.
Veri Yedekleme
Veri kaybı yaşamamak ve verileri yedeklemek, MySQL veri tabanlarının kullanımı sırasında oldukça önemlidir. Verilerin yedeklenmesi, birçok durumda hayat kurtarıcı olabilir. MySQL'de veri yedekleme işlemi, "mysqldump" komutuyla gerçekleştirilir.
Mysqldump komutu, MySQL veri tabanlarında yapılan tüm değişikliklerin, kaynak dosyalarının yedeklenmesini sağlar. Bu işlem sırasında, veri tabanının tamamı ya da belirli tablolar seçilebilir.
Bir veri tabanını yedeklemek için şu adımlar takip edilebilir:
- Terminal'i açarak, mysqldump komutunu çalıştırmak için aşağıdaki kod satırını yazın: mysqldump –u kullanıcıadı –p veritabanıadi > yedekleme.sql
- Kullanıcı adınızı ve veritabanı adınızı kendinizce özelleştirin.
- Bu kodun tamamlanmasının ardından, verilerin yedeklendiği dosyayı kontrol edin.
Veri kaybını önlemek ve verilerin yedekleri oluşturmak her zaman önemlidir. MySQL'de veri yedeklemek oldukça kolaydır ve anlatıldığı gibi gerçekleştirilebilir. Bunun sonucunda, veritabanı problemlerinde verilerinizi kaybetmek yerine, yedekleriniz sayesinde hızlı bir şekilde geri yükleyebilirsiniz.
Veri Geri Yükleme
MySQL'de veri geri yükleme işlemi, yedekleme işlemine benzer bir şekilde mysql komutu ile gerçekleştirilir. Öncelikle geri yüklemek istediğiniz veritabanının adı ve yedekleme dosyasının yolu belirtilir.
Bu işlemi gerçekleştirmek için öncelikle bir veritabanı oluşturmanız gerekiyor. Veritabanını oluşturduktan sonra, veritabanını seçin ve ardından mysql komutunu kullanarak yedekleme dosyasını geri yükleyin. İşlem sırasında birkaç adım takip edilmesi gerekiyor:
1. Komut Satırından MySQL'i açın ve veritabanını seçin.2. Geri yüklemek istediğiniz yedekleme dosyasını yerel bilgisayarınıza indirin.3. Dosyayı MySQL sunucusuna aktarın.4. Mysql komutunu kullanarak veri geri yükleme işlemini başlatın.
Geri yükleme işlemini yaparken, daha önce yedeklediğiniz verinin yeni kayıtlarla eşleşmemesi için birkaç öneri vardır. Örneğin, veritabanındaki tüm tabloları silerek başlayabilirsiniz. Böylece, yedekleme dosyasındaki veriler tablolara eklenebilir.
mysql komutu ile geri yükleme işlemi sırasında belirtilen yolu takip edin ve verinin doğru şekilde yüklenip yüklenmediğini doğrulayın. Ayrıca, yedekleme dosyasının doğru şekilde yüklenip yüklenmediğinden emin olmak için kontrol etmek için birkaç sorgu da yazılabilir.
Sonuç olarak, MySQL'de veri geri yükleme işlemi oldukça basittir ve mysql komutunun kullanımı, doğru yedekleme işlemi yapıldığında fazla vakit harcamayacaktır. Birkaç adım takip ederek, verilerinizi güvenli bir şekilde geri yükleyebilir ve işlemlerinize devam edebilirsiniz.