MySQL veritabanı yönetim sistemi, açık kaynak kodlu bir yapıya sahiptir Sistemin temel nesneleri tablolar, sütunlar, dizeler ve ilişkilerdir Tablolar verilerin saklandığı yapısal nesnelerdir Sütunlar ise, tablolardaki verilerin sıralandığı ve tanımlandığı alanlar olarak kullanılırlar Dizeler, bir sütun içindeki veri kümeleridir ve ilişkiler, tablolar arasındaki bağıntılardır MySQL kullanıcıları, bu nesneleri kullanarak verileri saklayabilir, düzenleyebilir ve erişebilirler Veritabanının yapısı ve kullanım alanı, tablolardan oluşur ve tablolarda veri kümeleri saklanır Sütunlar, tablolarda saklanan verilerin tiplerini ve sıralama özelliklerini belirlerken, dizeler ise tablolardaki verilerin sıralanmasını sağlarlar İlişkiler, tablolar arasındaki bağıntıların belirtilmesini sağlar ve bu sayede veriler arasında yapılandırılmış bir ili

MySQL, açık kaynak kodlu bir veritabanı yönetim sistemidir. Bu sistemde kullanılabilecek temel nesneler; tablolar, sütunlar, dizeler ve ilişkilerdir. Tablolar, verilerin saklandığı yapısal nesnelerdir. Sütunlar, tablolardaki verilerin sıralandığı ve tanımlandığı alanlardır. Dizeler ise, bir sütun içerisindeki veri kümesidir ve ilişkiler, tablolar arasındaki bağıntılardır.
Bu nesnelerin her biri, veritabanı yönetiminde önemli bir rol oynamaktadır. MySQL veritabanı yönetiminde kullanıcılar, bu nesneleri oluşturarak ve yöneterek verileri saklayabilir, düzenleyebilir ve erişebilirler. Veritabanının yapısı ve kullanım alanı, tablolardan oluşur ve tablolarda, veri kümeleri saklanır. Sütunlar, tablolarda saklanan verilerin tiplerini ve sıralama özelliklerini belirlerken, dizeler ise tablolardaki verilerin sıralanmasını sağlarlar.
İlişkiler ise, tablolar arasındaki bağıntıların belirtilmesini sağlar ve veriler arasında yapılandırılmış bir ilişki kurulmasını mümkün kılar. MySQL veritabanında kullanılan temel ilişki türleri; bir birine, bir çokluğa ve çokluğa bir ilişkileridir. Bu ilişkilerin yönetimi, iki tablo arasında bir anahtar bağlantısı kurarak gerçekleştirilir.
Tablolar
MySQL veritabanı kullanırken temel nesnelerden biri de tablolardır. Verileri saklamak için kullanılan tabloların oluşturulması oldukça önemlidir. Bir veritabanında birden fazla tablo oluşturulabilir ve her bir tablo kendi alanlarına sahip olabilir. Tablo oluşturmak için kullanılan komutlar CREATE TABLE ve DROP TABLE'dır.
Tablo oluştururken her bir satırın birincil anahtarı (primary key) ile otomatik olarak oluşturulması önemlidir. Bu anahtar, her bir satırın benzersiz bir tanımlayıcısıdır. Tablolardaki sütunların, verilerin doğru şekilde saklanması için uygun veri türüne sahip olması önemlidir. Bunun yanı sıra, her bir sütunun bir adı ve veri türü olmalıdır.
Tablolarda veri eklemek, güncellemek veya silmek için kullanılan komutlar, INSERT, UPDATE ve DELETE'dir. Ayrıca, tablo verilerini görüntülemek için kullanılan SELECT komutu ile de işlemler yapılabilir. Tabloların yönetimi için kullanılabilecek diğer komutlar arasında ALTER, GRANT, ve REVOKE gibi komutlar da yer almaktadır.
Sütunlar
MySQL veritabanında sütunlar, tablo içerisinde verileri tutmak için kullanılan veri yapılarıdır. Her sütun, belirli bir veri tipine sahip olabilir. MySQL'de kullanılan temel veri tipleri şunlardır:
- INT: Tam sayı değerleri için kullanılır.
- FLOAT: Ondalık sayı değerleri için kullanılır.
- CHAR: Sabit boyutlu karakter dizileri için kullanılır.
- VARCHAR: Değişken boyutlu karakter dizileri için kullanılır.
- DATE: Tarih değerleri için kullanılır.
- DATETIME: Tarih ve saat değerleri için kullanılır.
- TEXT: Uzun metinler için kullanılır.
MySQL'de sütun oluşturma işlemi, tablonun tasarımı sırasında gerçekleştirilir. İşlem, "CREATE TABLE" komutu kullanılarak yapılır ve istenilen sütunların isimleri ve veri tipleri belirtilir. Örneğin, aşağıdaki komut ile bir tablo oluşturulabilir:
Sütun Adı | Veri Tipi |
---|---|
id | INT |
isim | VARCHAR(50) |
tarih | DATE |
Yukarıdaki örnekte, "id" sütunu tam sayı değerleri için, "isim" sütunu değişken boyutlu karakter dizileri için ve "tarih" sütunu tarih değerleri için oluşturulmuştur. Ayrıca, "isim" sütunu için maksimum karakter sayısı 50 olarak belirtilmiştir.
MySQL veritabanlarında sütunları güncelleme, silme ve ekleme gibi işlemler de tablo tasarımı sırasında gerçekleştirilebilir. Bu işlemler, "ALTER TABLE" komutu kullanılarak yapılır.
Veri Tipleri
MySQL veritabanında kullanılan temel veri tipleri, herhangi bir verinin hangi türde tutulacağını belirlemek açısından oldukça önemlidir. Bu veri tipleri, sütunlar için atanmış bir veri türüdür ve sütunlar, verilerin tutulduğu tabloların yapı taşlarından biridir.
MySQL'de kullanılan temel veri tipleri şunlardır:
- CHAR: Sabit uzunluklu karakter dizileri için kullanılır.
- VARCHAR: Değişken uzunluklu karakter dizileri için kullanılır.
- TEXT: Büyük miktarlarda metin verisi için kullanılır.
- TINYINT: Küçük tamsayılar için kullanılır.
- SMALLINT: Küçük ve orta boyutlu tamsayılar için kullanılır.
- MEDIUMINT: Büyük tamsayılar için kullanılır.
- INT: Ortalama boyutlu tamsayılar için kullanılır.
- BIGINT: Büyük tamsayılar için kullanılır.
- FLOAT: Küçük ondalık sayılar için kullanılır.
- DOUBLE: Büyük ondalık sayılar için kullanılır.
- DECIMAL: Hassas ondalık sayılar için kullanılır.
- DATE: Tarih verisi için kullanılır.
- DATETIME: Tarih ve saat verisi için kullanılır.
Veri tipleri, verilerin tutulacağı alana göre seçilir. Örneğin, bir isim sütunu VARCHAR tipinde tanımlanabilirken, bir yaş sütunu TINYINT tipinde tanımlanabilir. Veri türleri, verileri doğru bir şekilde saklamak için çok önemlidir ve uygun bir şekilde seçilmelidir.
Metin Veri Tipleri
MySQL'de kullanılan veri tipleri arasında metin veri tipleri de bulunmaktadır. Metin veri tipleri, CHAR ve VARCHAR olarak adlandırılan iki farklı tiptir ve farklı özelliklere sahiptir.
CHAR tipi, sabit uzunluklu metinler için kullanılır. Bir CHAR sütunu belirli bir karakter sayısına sahiptir ve verilerin uzunluğu sütunda belirlenen karakter sayısına kadar doldurulur. Örneğin, bir CHAR(10) sütunu, en fazla 10 karakter içerebilir. Eğer sütuna 10 karakterden daha az bir veri girilirse, boş yerler boşluk karakteriyle doldurulacaktır.
VARCHAR tipi ise değişken uzunluklu metinler için kullanılır. Bir VARCHAR sütununda, belirlenen uzunluğun altında veri girilebilir. Örneğin, bir VARCHAR(10) sütunu, en fazla 10 karakter içerebilir; ancak sütunun boş kısımları, boşluk karakteriyle doldurulmaz.
Bu veri tipleri, özellikle yazı ve metin içeren verilerin depolanması için kullanışlıdır. Örneğin, bir web sitesinde kullanıcı adları, isimler ve diğer metin verileri, CHAR veya VARCHAR veri tipleri kullanılarak MySQL veritabanında depolanabilir.
Nümerik Veri Tipleri
MySQL veritabanlarında kullanılan nümerik veri tipleri, veritabanındaki sayısal verilerin saklanması için kullanılır. Bu veri tipleri, INT, FLOAT, DOUBLE, DECIMAL ve daha birçok farklı türde olabilir.
INT, bir tam sayı (integer) veri türüdür ve çoğunlukla 2 ve 4 byte boyutları kullanılır. Bu veri türü, genellikle veritabanındaki bir anahtar (primary key) olarak kullanılır ve sık sık sorgulama işlemleri için kullanılır.
FLOAT, ondalık sayısal (decimal) değerlerin saklanması için kullanılır ve 4 byte'lık alan kaplar. Bu veri türü, genellikle sayısal verilerin kesinliği önemli değilse kullanılır.
DOUBLE, ondalık sayısal değerlerin saklanması için kullanılır ve 8 byte'lık alan kaplar. Bu veri türü, FLOAT veri türünden daha yüksek bir hassasiyet sağlar.
DECIMAL, aynı zamanda ondalık (decimal) sayısal veri tipleri için kullanılır ve kullanıcının belirlediği bir hassasiyet derecesine sahiptir. Bu veri türü, daha yüksek bir hassasiyet gerektiren finansal uygulamalar ve benzeri alanlar için kullanılır.
Bu veri tipleri, MySQL veritabanlarındaki sayısal verilerin yönetimi için önemlidir. Veri tiplerinin kullanılması ve doğru şekilde ayarlanması, veritabanının doğru şekilde tasarlanması ve yönetilmesi açısından önemlidir.
Sütun Oluşturma
MySQL veritabanlarında sütun oluşturma işlemi, tablo tasarımında önemli bir adımdır. Tabloların ihtiyaç duyduğu sütunlar, verilerin doğru şekilde saklanması ve yönetimi açısından büyük öneme sahiptir. Sütunlar, tabloların yapısal bileşenleridir ve farklı veri tiplerine sahip olabilirler.
MySQL'de sütun oluşturma işlemi oldukça basittir. Yeni bir sütun oluşturmak için ALTER TABLE komutu kullanılır. Örneğin, "employees" adlı bir tabloya yeni bir "phone" sütunu eklemek için aşağıdaki komut kullanılabilir:
ALTER TABLE employeesADD phone VARCHAR(15);
Bu komut, "employees" tablosuna "phone" adlı yeni bir sütun ekler. Sütunun veri tipi VARCHAR(15) olarak belirlenmiştir. VARCHAR, değişken uzunluklu bir metin tipidir. Paranetik içinde belirtilen 15, sütunun en fazla 15 karakter içerebileceğini belirtir.
Ayrıca, sütunların silinmesi, adlarının değiştirilmesi ve verilerin değiştirilmesi de mümkündür. Ancak, tablonun yapısını değiştirmek, saklanan verileri etkileyebilir ve bu nedenle dikkatli bir şekilde yapılmalıdır.
Tabloların ihtiyaçlarını karşılamak için farklı tiplerde sütunlar oluşturmak mümkündür. Bunlar arasında metin veri tipleri (CHAR, VARCHAR), tarih/saat veri tipleri (DATE, DATETIME) ve nümerik veri tipleri (INT, FLOAT) gibi seçenekler bulunur. Bu veri tipleri, sütunların verileri nasıl saklayacağı ve işleyeceği hakkında bilgi verir.
Bir müşteri tablosunda, "name" adlı CHAR(50) tipinde bir sütuna sahip olmak istiyorsunuz. Bu sütun, müşteri adının saklanması için kullanılacak. Aşağıdaki komut, yeni sütunun oluşturulması için kullanılabilir:
ALTER TABLE customersADD name CHAR(50);
Bir ödeme tablosunda ise, "amount" adlı bir FLOAT tipinde bir sütuna ihtiyacınız olabilir. Bu sütun, ödeme miktarının saklanması için kullanılacak. Aşağıdaki komut, bu sütunun oluşturulması için kullanılabilir:
ALTER TABLE paymentsADD amount FLOAT;
Sütun oluşturma işlemleri, veritabanı tasarımının önemli bir parçasıdır. Doğru sütunların oluşturulması, verilerin doğru şekilde saklanması ve yönetilmesi açısından kritiktir. MySQL'in sunduğu esneklik sayesinde, tabloların ihtiyacına uygun sütunlar oluşturmak oldukça kolaydır.
Dizeler
MySQL veritabanı işlemlerinde sıkça kullanılan bir diğer nesne ise dizelerdir. İngilizce olarak "string" olarak anılan dizeler, karakterlerden oluşan veri tipidir. Dizeleri tanımlamak için MySQL'de CHAR, VARCHAR gibi veri tipleri kullanılır.
CHAR veri tipi için tanımlanan uzunluk sabit olup, girilen veriyi kapasitesi kadar tamamlar. Örneğin, bir CHAR(10) veri tipi için 5 karakter girilirse 10 karakterli bir dizge de olsa geri kalan 5 karakter, CHAR özellikleri gereği boşluklarla tamamlanır. Diğer bir veri tipi olan VARCHAR ise değişken uzunluğa sahiptir. Bu nedenle, girilen veri uzunluğuna göre boyutlandırılır.
Dizelerin işlemleri ise oldukça kapsamlıdır. Özellikle, bir dize içerisinden belli karakterleri almak, birleştirmek gibi işlemler oldukça sık kullanılır. Bu işlemler için MySQL'de bazı komutlar kullanılır. CONCAT, SUBSTRING_INDEX, LENGTH, REPLACE ve TRIM en sık kullanılan dize işlemleri komutlarıdır.
MySQL'de dize işlemleri yapmanın yanı sıra dizelerin karşılaştırması da yapılabilmektedir. Karşılaştırma işlemleri için kullanılan komutlar ise LIKE, NOT LIKE ve REGEXP'dir. Dizelerin karşılaştırılması işlemleri o kadar önemlidir ki birçok uygulama kullanıcının belirlediği şifreleri bu işlemlerle karşılaştırır.
Sonuç olarak, MySQL veritabanı işlemlerinde dizeler oldukça önemli bir yer tutar. Dizelerin doğru tanımlanması işlemleri doğrudan etkileyeceği için bu alanda doğru yönetilmeleri gerekmektedir.
Dize Veri Tipleri
MySQL veritabanlarında kullanılan dize veri tipleri, karakterlerden oluşan ve sınırlı sayıda karakter içeren değerleri temsil eder. MySQL'de kullanılan temel dize veri tipleri şunlardır:
Dize Veri Tipi | Tanımı |
---|---|
CHAR | Sabit uzunlukta karakter dizileri için kullanılır. Örneğin, CHAR(10) 10 karakter uzunluğunda bir alan oluşturur. |
VARCHAR | Değişken uzunlukta karakter dizileri için kullanılır. Örneğin, VARCHAR(255) maksimum 255 karakter uzunluğunda bir alan oluşturur. |
TEXT | Uzun karakter dizileri için kullanılır. Bir alanın boyutu 65,535 karaktere kadar olabilir. |
CHAR ve VARCHAR veri tipleri arasındaki fark, CHAR alanlarının her zaman sabit uzunlukta olması, VARCHAR alanlarının ise değişken uzunlukta olabilmesidir. Bu nedenle, CHAR daha hızlı ama daha fazla alan kullanırken, VARCHAR daha az alan kullanır ancak daha yavaş çalışabilir.
Dize veri tipleri özellikle metin bazlı verileri saklamak için kullanılır. Örneğin, bir ürünün açıklaması ya da bir makalenin tamamı gibi uzun metinler TEXT veri tipinde saklanabilir. CHAR ve VARCHAR veri tipleri özellikle kolay ve hızlı arama işlemleri için kullanışlıdır. Özetle, dize veri tipleri MySQL veritabanında farklı amaçlar için kullanılır ve alanların boyutları verilerin gereksinimlerine göre ayarlanabilir.
Dize İşlemleri
MySQL veritabanında dize işlemleri yapmak için birçok farklı komut bulunmaktadır. Bunlar arasında en sık kullanılanlar; CONCAT, SUBSTRING, REPLACE, ve TRIM'dir.
CONCAT komutu, iki veya daha fazla dizeyi birleştirmek için kullanılır. Örneğin, "ad" ve "soyad" sütunları birleştirilerek "isim" sütunu oluşturulabilir:
ad | soyad | isim |
---|---|---|
John | Doe | CONCAT(ad, ' ', soyad) |
SUBSTRING komutu ise, dizenin belirli bir bölümünü almamızı sağlar. Örneğin, "ad" sütununun ilk harfini almak için kullanılabilir:
ad | ilk_harf |
---|---|
John | SUBSTRING(ad, 1, 1) |
REPLACE komutu, dizenin belirli bir bölümünü başka bir dizeyle değiştirmemizi sağlar. Örneğin, telefon numaralarındaki "-" karakterlerinin silinmesi:
telefon | telefon_yeni |
---|---|
555-123-4567 | REPLACE(telefon, '-', '') |
TRIM komutu, bir dizenin başındaki veya sonundaki boşlukları kaldırmamızı sağlar. Örneğin, "ad" sütunundaki isimlerin başındaki ve sonundaki boşlukların kaldırılması:
ad | ad_yeni |
---|---|
John | TRIM(ad) |
Bu komutlar gibi birçok dize işlemi komutu bulunmaktadır. Uygun şekilde kullanıldıklarında, veritabanındaki dize verilerini düzenlemek ve yönetmek oldukça kolay hale gelir.
İlişkiler
MySQL veritabanlarının en temel yapı taşlarından biri olan ilişkiler, tablolar arasında bağlantı kurarak verilerin daha düzenli ve etkin bir şekilde depolanmasını sağlarlar. İlişkiler, tablolar arasındaki sütunlar aracılığıyla oluşturulur ve verilerin daha kolay yönetilmesini sağlar.
MySQL'de kullanılabilecek üç farklı ilişki türü bulunur: bir bir (one-to-one), bir çok (one-to-many) ve çok çok (many-to-many) ilişkileri. One-to-one ilişkileri, iki farklı tablo arasında birincil anahtar alanına göre yapılan bağlantıyı ifade eder. One-to-many ilişkilerinde ise bir tablodaki bir veri ögesi diğer tablodaki birden fazla veri öğesiyle bağlantılıdır. Çoklu-to-çoklu ilişkilerde, iki tablo arasındaki birçok birçok bağlantı yapılır.
İlişkilerin yönetimi ve oluşturulması, MySQL'deki ilişki anahtarları ve dış anahtarlar tarafından kontrol edilir. İlişki anahtarları, birincil anahtar alanlarından birine eklenerek oluşturulur. Dış anahtarlar ise, bir tablodaki sütunların diğer tabloların sütunlarına atıfta bulunarak oluşturulur ve verilerin bağlantılı bir şekilde saklanmasına olanak tanır.
MySQL'deki ilişkilerin yönetimi ve oluşturulması oldukça önemli bir konudur ve işletmelerin verilerini daha düzenli ve mantıklı bir şekilde saklamalarına yardımcı olur. Eğer bir işletme, verilerini kolay bir şekilde yönetmek istiyor veya birden fazla tablonun verilerine ihtiyaç duyuyorsa, ilişkileri yönetmek için MySQL veritabanını kullanarak verilerini daha doğru bir şekilde saklayabilirler.
İlişki Türleri
MySQL veritabanında kullanılan temel ilişki türlerine bakacak olursak, iki temel ilişki türü bulunmaktadır. İlk olarak "One-to-One" ilişkisi söz konusudur. Bu ilişkide bir dize sadece diğer dizeyle eşleşir. Örnek olarak, çalışanlar tablosunda, her çalışanın bir maaş tablosu var. Ve yalnızca çalışanın maaş kaydı bulunmaktadır. Bu, One-to-One ilişkisinin klasik bir örneğidir.
Bir diğer temel ilişki türü ise "One-to-Many" (bir-many) ilişkisidir. Bu ilişkide, birinci dize birçok ikinci dize ile ilişkilidir. Örneğin, bir üye tablosu ile birçok sipariş tablosu vardır. Her üye, birden çok sipariş verebilir ve bu yüzden One-to-Many ilişkisi oluşturulur.
Bunların yanı sıra, bir de "Many-to-Many" ilişkisi bulunur. Bu ilişkide, birinci dize birçok ikinci dizeyle ilişkilidir ve ikinci dize de birçok birinci dizeyle ilişkilidir. Bu tür ilişkilerde tablolar arasındaki ilişki her zaman "ara tablo" denilen bir tablo yardımıyla oluşturulur. Örneğin, bir kurs tablosu ve bir öğrenci tablosu olduğunu düşünelim. Her öğrenci birkaç kursa kaydolabilir ve bir kursa kaydı olan birçok öğrenci olabilir. Bu nedenle, ara tablo oluşturularak Many-to-Many ilişkisi oluşturulur.
İlişki Yönetimi
MySQL'deki ilişkilerin yönetimi için bazı önemli komutlar bulunmaktadır. Bunlar, tablo oluşturma, tablo silme, tabloya veri ekleme, tablodan veri silme ve tabloda güncelleme yapmak için kullanılan komutlardır. Aynı zamanda, ilişki yönetimi sırasında dikkat edilmesi gereken bazı önemli noktalar vardır.
Örneğin, birden fazla tablo arasında ilişki oluşturulduğunda, bu ilişkilerin türleri belirlenmelidir. Çünkü ilişki türleri, hangi anahtar sütunların kullanılacağını belirler. İlişki yönetimi sırasında, birinci tablodaki anahtar sütunlarının ikinci tabloya eklenmesi gerekir. Anahtar sütunlarının eşleştirilmesi gerçekleşene kadar ilişki kurulmaz. İlişkiler kurulduktan sonra, anahtar sütunlarına yönelik olarak veri eklenmesi, silinmesi veya güncellenmesi durumunda, ilişki etkilenir ve diğer tabloda da etkiler oluşabilir. Bu nedenle ilişki yönetiminde dikkatli olmak önemlidir.
İlişki yönetimi sırasında sıkça kullanılan JOIN işlemi tablolar arasında veri alışverişine izin verir. LEFT JOIN, RIGHT JOIN, INNER JOIN gibi JOIN türleri bulunmaktadır. Bu JOIN türleri, tablonun hangi sütunlarında veri eşleştirmeleri yapılacağını belirler. Örneğin, LEFT JOIN, birinci tablodaki tüm verilerin alınmasına ve eşleşen verilerin ikinci tablodan alınmasına izin verir.
İlişki yönetimi, veritabanı yönetiminde önemli bir yer tutar ve verilerin doğru bir şekilde korunmasını sağlar. Bu nedenle, MySQL'deki ilişki yönetimi konusunda bilgi sahibi olmak ve ilgili komutları doğru bir şekilde kullanmak, uzun vadede veritabanının doğru ve sağlıklı bir şekilde yönetilmesine yardımcı olur.