MySQL'de Tablo Oluşturma ve Sorgulama İşlemleri

MySQL'de Tablo Oluşturma ve Sorgulama İşlemleri

MySQL'de Tablo Oluşturma ve Sorgulama İşlemleri, veritabanı oluşturmada ve verileri yönetmede önemli bir adımdır Bu makalede, adım adım tablo oluşturma ve sorgulama işlemlerini öğrenebilirsiniz Veri tabanı işlemleri hakkında bilgi sahibi olun ve verilerinizi etkili bir şekilde yönetin!

MySQL'de Tablo Oluşturma ve Sorgulama İşlemleri

MySQL, birçok kullanıcının tercih ettiği bir veritabanı yönetim sistemidir. Ancak, anlamlı ve etkili sonuçlar elde etmek için MySQL'de veritabanı tablolarına uygun bir şekilde işlem yapmak gerekir. Bu makalede, MySQL'de veritabanı tablolarının nasıl oluşturulup sorgulanacağına dair adımları ele alacağız.

Tablo oluşturma işlemi, verileri düzenlemek ve yönetmek için bir temel gerekliliktir. Tablo oluşturma işlemi için SQL komutlarını kullanırız. Tablo yapısını tanımlarken, hangi sütunları içereceğimizi ve hangisi her bir sütunda yer alacağını belirtmeliyiz. Bunun yanında, sütunların türünü de belirtmeliyiz. Veritabanında tablo oluşturmak için aşağıdaki SQL komutunu kullanabilirsiniz:

SQL Komutu Açıklama
CREATE TABLE tablo_adı(
    sütun_1 sütun_tipi sütun_özellikleri,
    sütun_2 sütun_tipi sütun_özellikleri,
    ...
    sütun_n sütun_tipi sütun_özellikleri
);
Veritabanında yeni bir tablo oluşturmak için kullanılır.

Eğer yeni bir tablo oluştururken belirli sütunları veya özelleştirmeleri atlamak istiyorsanız, hatalar oluşabilir. Bu sebeple, bir tablo oluştururken dikkatli ve doğru bir şekilde sütun ve özellikleri tanımlamak önemlidir.

Bunun yanısıra, tabloya veri eklemek ve sorgulamak için SQL komutlarını kullanabilirsiniz. Verileri sorgulamak, aramak veya filtrelemek amacıyla SELECT, FROM ve WHERE komutlarını kullanabilirsiniz. Ayrıca, veritabanındaki tabloları düzenlemek için UPDATE ve DELETE komutlarını kullanabilirsiniz.


Tablo Oluşturma

MySQL'de yeni bir tablo oluşturmak için kullanılacak SQL komutu CREATE TABLE'dır. Bu komut, tabloyu oluşturmak için gerekli alanları tanımlar. Bu alanlar, verilerin nasıl depolanacağı ve veritabanı yönetim sistemi tarafından nasıl işleneceği hakkında bilgi verir.

Aşağıdaki örnekte, "musteriler" adında bir tablo oluşturmak için kullanılan SQL kodunu görebilirsiniz:

CREATE TABLE musteriler (    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,    ad VARCHAR(30) NOT NULL,    soyad VARCHAR(30) NOT NULL,    email VARCHAR(50),    kayit_tarihi TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP);

Yukarıdaki kod, musteri adında bir tablo oluşturur ve bu tablodaki sütunları belirtir. "id" sütunu otomatik olarak oluşturulur ve her kayıt eklendiğinde artan bir sayı olarak atanır. "ad" ve "soyad" sütunları, kullanıcının adı ve soyadını depolamak için kullanılır. "email" sütunu, isteğe bağlı olarak kullanıcının e-posta adresini depolamak için kullanılır. Son olarak, "kayit_tarihi" sütunu, kullanıcının kayıt tarihini otomatik olarak depolamak için kullanılır.

Tabloya eklemek istediğiniz sütunları belirledikten sonra, INSERT komutunu kullanarak tabloya veri ekleyebilirsiniz. Aşağıdaki örnekte, musteriler tablosuna yeni bir kullanıcı eklemek için kullanılan SQL komutunu görebilirsiniz:

INSERT INTO musteriler (ad, soyad, email)VALUES ('John', 'Doe', 'johndoe@gmail.com');

Yukarıdaki kod, "musteriler" tablosuna yeni bir kullanıcı ekler. "ad", "soyad" ve "email" sütunları, kullanıcının adını, soyadını ve e-posta adresini depolamak için kullanılır.

Tabloların oluşturulması ve verilerin eklenmesi, MySQL'de veritabanı yönetimi için temel adımlardır. İleri gitmek için, sorgu işlemleri hakkında daha fazla bilgi edinmeli ve bu sorguları kullanarak verileri filtrelemenin, güncelleştirmenin ve silmenin nasıl yapılacağını öğrenmelisiniz.


Sorgulama İşlemleri

Veritabanında bulunan tablolardaki verileri sorgulamak, güncellemek veya silmek için SQL kodları kullanılır. Bunun için en temel ve en çok kullanılan kod WHERE komutudur. WHERE komutu, belirli bir koşula uygun verileri getirir. Örnek olarak, bir müşterinin siparişlerinin listesi için "WHERE customer_id = '12345'" kullanılabilir.

Ayrıca, sorgulama sonucunu belirli bir sıraya göre sıralamak için ORDER BY komutu kullanılır. Örneğin, "ORDER BY order_date DESC" kullanarak müşterilerin en son siparişlerinin üst sıralarda listelenmesi sağlanabilir.

Tüm verileri sorgulamak yerine, belirli kriterlere göre verileri filtrelemek daha spesifik sonuçlar verir. Filtreleme işlemleri için kullanılan komutlar arasında LIKE, IN, BETWEEN, ve NULL gibi komutlar bulunur.

Verilerin sorgulanması, güncellenmesi ve silinmesi işlemleri temel SQL komutlarından oluşur. Ancak, veritabanında birbiriyle ilişkili olan tablolar varsa, JOIN işlemleri kullanılarak veriler daha ayrıntılı bir şekilde görüntülenebilir. Foreign key kullanılarak, bir tablodaki veriler başka bir tabloyla ilişkili hale getirilebilir, böylece veriler daha düzenli hale getirilir.

Veritabanı yönetimi oldukça karmaşık bir süreç olabilir. Ancak, temel SQL komutlarını öğrendikten sonra, verilerin sorgulanması, güncellenmesi ve silinmesi işlemlerini gerçekleştirmek oldukça kolay hale gelecektir.


Veri Filtreleme

Veritabanında bulunan verileri belirli kriterler doğrultusunda filtrelemek oldukça önemli bir işlemdir. Bu sayede istenilen verilere daha hızlı ve kolay bir şekilde erişim sağlanabilir. Veri filtreme işlemleri için WHERE, LIKE, BETWEEN gibi SQL komutları kullanılır.

WHERE komutu, belirli bir koşula göre verileri sorgulamak için kullanılır. Örneğin, bir tabloda bulunan müşterilerin sadece İstanbul'da yaşayanlarını sorgulamak istediğimizde WHERE komutunu kullanarak "SELECT * FROM müşteriler WHERE şehir='İstanbul' " şeklinde bir sorgu yazabiliriz.

LIKE komutu ise, belirli bir kelime veya kelime grubuna göre verileri sorgulamak için kullanılır. Örneğin, bir tabloda bulunan müşterilerin sadece isimleri Ali ile başlayanlarını sorgulamak istediğimizde "SELECT * FROM müşteriler WHERE isim LIKE 'Ali%'" şeklinde bir sorgu yazabiliriz.

BETWEEN komutu ise, belirli bir aralıkta bulunan verileri sorgulamak için kullanılır. Örneğin, bir tabloda bulunan müşterilerin sadece belirli bir yaş aralığında olanlarını sorgulamak istediğimizde "SELECT * FROM müşteriler WHERE yaş BETWEEN 20 AND 30" şeklinde bir sorgu yazabiliriz.

Veri filtreme işlemleri için kullanılan SQL komutları oldukça çeşitlidir ve her birinin farklı bir işlevi vardır. Bu nedenle, veri sorgulama işlemlerinde doğru SQL komutlarını kullanmak oldukça önemlidir.


WHERE Komutu

WHERE komutu, veritabanında belirli bir şarta uyan verileri sorgulama işlemlerinde kullanılan bir SQL komutudur. Bu komut sayesinde verileri daha spesifik bir şekilde sorgulayabilir ve istediğimiz sonuçları elde edebiliriz.

Örneğin, "müşteriler" adlı tabloda bulunan "isim" sütunundaki verileri alfabetik olarak sıralamak istediğimizde "SELECT * FROM müşteriler WHERE isim ORDER BY isim ASC" gibi bir SQL sorgusu kullanabiliriz. Burada WHERE komutu ile "isim" sütunu seçilir ve ORDER BY komutu ile bu sütuna göre sıralama yapılır.

WHERE komutuyla birlikte kullanabileceğimiz diğer operatörler ise "=" (eşittir), "<>" (eşit değil), ">" (büyüktür), "<" (küçüktür), ">=" (büyük veya eşit), "<=" (küçük veya eşit), "LIKE" (benzer), "IN" (içinde) ve "NOT IN" (içinde olmayan) gibi operatörlerdir. Bu operatörlerle sorgulama işlemlerimizi daha da detaylandırabiliriz.

Örneğin, "müşteriler" adlı tabloda bulunan "yaş" sütunundaki verileri 18'den büyük olan müşterileri sorgulamak için "SELECT * FROM müşteriler WHERE yaş > 18" gibi bir SQL sorgusu kullanabiliriz. Burada ">" operatörü ile "yaş" sütunundaki veriler 18'den büyük olan müşteriler seçilir.

WHERE komutu, veritabanı sorgulama işlemlerinde oldukça önemli bir rol oynar ve işlemlerimizin daha spesifik hale gelmesine yardımcı olur. Bu nedenle, SQL öğrenirken WHERE komutu ve diğer operatörleri öğrenmek oldukça önemlidir.


ORDER BY Komutu

ORDER BY Komutu:

MySQL'de ORDER BY komutu kullanarak verileri belirli bir sıraya göre sıralamak mümkündür. Bu komut, verileri artan veya azalan şekilde sıralamak için kullanılabilir. Örneğin, bir veritabanında bulunan "müşteriler" tablosundaki müşterilerin isimlerini alfabetik olarak sıralamak istiyorsak aşağıdaki SQL sorgusu kullanılabilir:

SQL Sorgusu Açıklama
SELECT * FROM müşteriler ORDER BY isim ASC; Müşterilerin isimlerini alfabetik olarak artan sırayla sıralar.

Yukarıdaki sorguda ASC kelimesi, "artan" anlamına gelir. Eğer müşterilerin isimlerini tersten, yani Z'den A'ya doğru sıralamak istersek, aşağıdaki SQL sorgusu kullanılabilir:

SQL Sorgusu Açıklama
SELECT * FROM müşteriler ORDER BY isim DESC; Müşterilerin isimlerini alfabetik olarak azalan sırayla sıralar.

Bu örneklerde sadece bir sütun (müşteri ismi) kullanılmıştır. Ancak, veritabanında birkaç sütun varsa, verileri birden fazla sütuna göre sıralamak için ORDER BY komutu kullanılabilir. Örneğin, aynı "müşteriler" tablosundaki müşterileri yaşlarına göre sıralamak istiyorsak, aşağıdaki SQL sorgusu kullanılabilir:

SQL Sorgusu Açıklama
SELECT * FROM müşteriler ORDER BY yaş ASC, isim ASC; Müşterileri yaşlarına göre artan ve isimlerine göre alfabetik olarak artan şekilde sıralar.

Yukarıdaki örnekte, ORDER BY komutu yaş ve isim sütunlarına göre ayrı ayrı sıralama yapar. Önce yaşa göre artan şekilde sıralama yapar, daha sonra aynı yaşta olan müşteri isimlerini alfabetik olarak sıralar.


Veri Güncelleme ve Silme

Veritabanında bulunan verilerin zaman zaman güncellenmesi ya da silinmesi işlemi oldukça sık karşılaşılan bir durumdur. Bu işlemlerin yapılabilmesi için de bazı SQL komutları kullanılmaktadır. Veri güncelleme işlemi yapabilmek için öncelikle veritabanında bulunan tabloları bilmek gerekmektedir.Veri güncelleme işlemini gerçekleştirebilmek için UPDATE komutu kullanılır. Bu komut sayesinde tablo içerisindeki belirli bir veri ya da veri grubu güncellenebilir. Güncelleme işlemini yapmak için verinin hangi tablo içerisinde ve belirli bir kriterle hangi satır içerisinde yer aldığı bilinmelidir. Aşağıdaki örnek kod üzerinden veri güncelleme işlemi nasıl gerçekleştirilir inceleyebilirsiniz:

UPDATE musteriler SET bolum = 'pazarlama' WHERE isim = 'Ali';

Yukarıdaki kod örneğinde "musteriler" adlı tabloda "isim" değişkeni "Ali" olan satırın bölümü "pazarlama" olarak güncellenmektedir.Verilerin silinmesi işlemi de oldukça sık kullanılan bir işlemdir. DELETE komutu kullanılarak belirli bir tablodaki belirli bir satır ya da satırlar veritabanından silinebilir. Aşağıdaki örnek kod ile veri silme işlemi nasıl gerçekleştirilir görebilirsiniz:

DELETE FROM musteriler WHERE isim = 'Ali';

Yukarıdaki örnek kod örneğinde "musteriler" adlı tabloda ismi "Ali" olan kaydın silinmesi işlemi gerçekleştirilmektedir.Veri güncelleme ve silme işlemleri yapılırken dikkat edilmesi gereken en önemli nokta, yanlışlıkla veri kaybı yaşamamak adına işlemin doğru bir şekilde yapılmasıdır. Bu nedenle komutların doğru bir şekilde kullanılması ve işlemlerin yapılmadan önce iyi bir planlama yapılmış olması gerekmektedir.

UPDATE Komutu

MySQL'de veritabanında bulunan verileri güncellemek için UPDATE komutu kullanılır. Bu komut kullanılarak belirli bir veritabanı tablosundaki verileri güncelleyebilirsiniz. Güncelleme işlemi yaparken dikkat edilmesi gereken nokta, güncellenecek verilerin hangi kriterlere göre seçileceğidir. UPDATE komutu kullanırken WHERE koşulu belirtilerek hangi verilerin güncelleneceği belirlenir.

Örneğin, bir öğrenci veritabanında öğrencilerin isim, soyisim ve not bilgileri tutulmaktadır. Bu tablodaki öğrencilerin not bilgilerini güncellemek isterseniz aşağıdaki gibi bir sorgu kullanılabilir:

Örnek Sorgu Açıklama
UPDATE ogrenciler SET not=80 WHERE isim='Ali' AND soyisim='Can' Öğrenciler tablosunda ismi Ali olan ve soyismi Can olan öğrencinin not bilgisi 80 olarak güncellenir.

Bu sorgu kullanılarak öğrencinin not bilgisi başarısına göre güncellenebilir veya not bilgisindeki hatalar düzeltilebilir.


DELETE Komutu

Veritabanında yer alan bilgilerin güncelleme işlemi yanı sıra, silme işlemi de gerekebilir. MySQL'de DELETE komutu kullanılarak veriler silinebilir. DELETE komutu, veritabanında bulunan belirli bir tablo ve bunun kriterleri verilerek yapılan bir sorgu sonucu çalıştırılır.

Örneğin, bir veritabanında x isimli bir tablo olsun ve bu tablo içerisinde öğrencilerin bilgileri yer alsın. Eğer öğrencilerden bazıları kayıt yapmamışsa ya da kayıt silinmişse, bu veriler tablodan silinerek güncellenebilir.

Örnek Tablo
Öğrenci No Ad Soyad Bölüm
1 Ahmet Ak Bilgisayar Mühendisliği
2 Deniz Yıldız Elektrik Elektronik Mühendisliği
3 Ali Veli Makine Mühendisliği

Eğer veritabanından 'Ali Veli' adlı öğrencinin bilgileri silinmek istenirse, DELETE komutu kullanılarak bu işlem gerçekleştirilebilir. DELETE komutu şu şekilde yazılabilir:

DELETE FROM xWHERE Ad Soyad='Ali Veli';

Tablo adı 'x' olarak belirtilmiş ve WHERE komutu kullanarak 'Ad Soyad' kriteri belirlenmiştir. Bu komut kullanıldığında 'Ali Veli' adlı öğrencinin kaydı silinecektir.

Tablodaki tüm veriler silinmek istendiğinde ise WHERE komutu kullanılmaz. DELETE komutu şu şekilde yazılabilir:

DELETE FROM x;

Bu şekilde tüm veriler 'x' tablosundan silinecektir. Ancak, bu komutun kullanımında dikkatli olunmalı ve verilerin yedeklenmesi önerilmektedir.


İlişkisel Veritabanı Yönetimi

İlişkisel veritabanı yönetimi, birden fazla tablonun birbirleriyle ilişkili olduğu durumlarda kullanılır. Bu yönetim şekli, verilerin etkili bir şekilde saklanmasına ve erişilmesine olanak tanır. İlişkisel veritabanları oluşturmak için iki veya daha fazla tablo kullanılır ve her bir tablo, birincil anahtar kullanılarak belirli bir şekilde tanımlanır. Örneğin, bir kitap satış web sitesi için, kitaplar ve yazarlar gibi iki tablo olabilir. Bu durumda, iki tablonun birbirleriyle ilişkisi, yazarların yazdığı kitaplar olacaktır.

İlişkisel veritabanları yönetmek için kullanılan en yaygın yöntemlerden biri JOIN işlemlerdir. Bu işlemler, iki veya daha fazla tablonun belirli bir sütunundaki verileri birleştirmek için kullanılır. JOIN işlemleri, INNER, LEFT, RIGHT ve FULL OUTER gibi farklı tiplerde olabilir ve seçilen tip, kullanılan tablolardaki verilerin türüne ve ilişkisine bağlıdır.

Bunun yanı sıra, ilişkisel veritabanlarında, bir tablodaki kayıt, diğer bir tablodaki kayıtlarla ilişki kurabilir. Bu ilişki, birincil anahtar ve yabancı anahtar kullanarak tanımlanabilir. Yabancı anahtarlar, bir tablodaki kayıtlarla diğer bir tablodaki kayıtlar arasındaki bağı sağlar. Örneğin, kitap sitemizde, kitaplar tablosunda ISBN birincil anahtar olabilir ve yazarlar tablosunda yazar ID'si birincil anahtar olabilir. Yazarlar tablosunda, kitaplar tablosundaki ISBN numarası yabancı anahtar olacaktır.

Sonuç olarak, ilişkisel veritabanları yönetmek, birbirleriyle ilişkili tabloların oluşturulmasını ve verilerin etkili bir şekilde saklanmasını ve erişilmesini sağlar. Bu yapılan işlemleri başarılı bir şekilde gerçekleştirmek için JOIN işlemlerinin yanı sıra birincil anahtarlar ve yabancı anahtarların kullanımını da bilmek gerekir.


JOIN İşlemleri

SQL'de JOIN, farklı tablolardaki verileri birleştirerek tek bir sonuç kümesi elde etmek için kullanılır. İki veya daha fazla tabloyu belirli bir sütundaki ortak değer üzerinden birbirine bağlar. JOIN komutu, INNER, LEFT, RIGHT ve FULL OUTER olmak üzere farklı tiplerde kullanılabilir.

Örneğin, bir e-ticaret sitesinde kullanıcılar ve siparişler tabloları bulunabilir. İki tablo arasındaki ilişkiyi kullanıcı kimliği (ID) sütunu ile kurabilir ve JOIN komutu ile birleştirilebilir. Bu şekilde, her kullanıcının siparişlerini gösteren bir sonuç kümesi elde edilebilir.

Bu örnekte, INNER JOIN, kullanıcılara ait siparişlerin sadece bulunduğunu göstermektedir. LEFT JOIN da ise, kullanıcılara ait herhangi bir sipariş olmaması durumunda bile sonuç kümesinde kullanıcının varlığını gösterir. RIGHT JOIN ve FULL OUTER JOIN da benzer şekilde çalışır, ancak tablo sıralaması farklıdır ve sonuç kümeleri değişebilir.

INNER JOIN LEFT JOIN RIGHT JOIN FULL OUTER JOIN
  • Kullanıcı ve siparişleri olan kayıtlar listelenir.
  • Kullanıcılara ait olmayan siparişler listelenmez.
  • Tüm kullanıcı kayıtları listelenir.
  • Kullanıcılara ait olmayan siparişler NULL olarak listelenir.
  • Tüm sipariş kayıtları listelenir.
  • Kullanıcı kaydı olmayan siparişler NULL olarak listelenir
  • Tüm kayıtlar listelenir (kullanıcı ve siparişleri)
  • Herhangi bir veri eksiksiz listelenir, eksik veriler null olarak listelenir

JOIN komutu kullanırken, hatalardan kaçınmak için sütun isimleri, tablo isimleri ve sorgu parametreleri doğru şekilde yazılmalıdır. Aynı zamanda, performans açısından büyük veri sorgulamalarında JOIN kullanımı bazen yavaşlayabilir. Bu durumda, sorgunun optimize edilmesi gerekir.


Foreign Key

Foreign key, ilişkisel veritabanı yönetimi için önemli bir kavramdır. İki tablo arasında bir ilişki kurulduğunda, bu ilişkiyi oluşturan sütuna foreign key adı verilir. Foreign key, ilgili tablodaki bir sütundaki verilerin diğer tablodaki sütunda olan verilerle eşleşmesini sağlar. Bu sayede veritabanı yönetimi daha organize hale gelir ve verilerin tutarlılığı sağlanır.

Foreign key tanımlama işlemleri oldukça kolaydır. İlişkili tablolardan biri olan ana tablonun primary key'ine referans veren sütunlar, diğer tablonun foreign key'leri olarak belirlenir. Yani, foreign key, diğer tablodaki primary key'e referans olarak kullanılır. Böylece tablolar arasındaki ilişki kurulur.

Aşağıdaki örnekte, foreign key tanımlama işlemi görülmektedir. “books” adlı bir tablomuz olsun. Bu tabloda “book_id” adlı bir primary key oluşturduğumuzu varsayalım. Ayrıca bir de “authors” adlı bir tablomuz olsun. Bu tabloda da “author_id” adlı bir primary key bulunsun. İki tabloyu ilişkilendirmek için, “books” tablosundaki “author_id” adlı sütununa foreign key tanımlamamız gerekiyor.

books authors
book_id author_id
1 101
2 102
3 103

Yukarıdaki örnekte, “books” tablosundaki “author_id” sütunu, “authors” tablosundaki “author_id” sütununa foreign key olarak belirlendi. Bu sayede, iki tablo arasındaki verilerin eşleştirilmesi kolaylaştırılmış oldu.

Foreign key kullanmanın bir diğer avantajı ise verilerin tutarlılığının sağlanmasıdır. İlişkili iki tablo arasındaki verilerin eşleştirilmesinde hata oluşursa, veritabanında tutarsızlık oluşabilir. Ancak foreign key kullanılırsa, verilerin tutarlılığı sağlanarak bu tür hataların önüne geçilir.

Yukarıda verilen örnekte bulunan foreign key tanımlama işlemi, join işlemleri sırasında kullanılabilecek bir veri seti oluşturur. Birbirleriyle ilişkili tablo verileri sorgulanırken, foreign key kullanarak tutarlı bir veri seti oluşturulur.