MySQL

MySQL Film Veritabanı ve Örnek Sorguları

Veritabanları, modern bilgi teknolojilerinin temel yapı taşlarından biridir. Bilgilerin organize edilmesi, saklanması, erişilmesi ve güncellenmesi için kritik bir rol oynayan veritabanları, çeşitli sektörlerde geniş bir kullanım alanına sahiptir. Bu makalede, MySQL veritabanı kullanarak bir film veritabanı oluşturmayı ve yönetmeyi öğreneceğiz. Filmlerin, yönetmenlerin, eleştirilerin ve daha fazlasının yer aldığı bir veritabanını adım adım oluşturacak ve temel SQL sorgularını kullanarak veri manipülasyonunu gerçekleştireceğiz. Bu sayede, MySQL ve veritabanı yönetimi konusunda sağlam bir temel oluşturarak, gerçek dünya uygulamalarında veri tabanı işlemlerini kolaylıkla gerçekleştirebileceksiniz.

Veritabanı Nedir?

Taban olarak “veri” kelimesiyle oluşturulan ve bu verilerin bir düzen içinde depolandığı yapıya “veritabanı” denir. Bir organizasyonun veya bir uygulamanın bilgi yönetimi için kullanılan temel araçlardan biridir. Veritabanları, bilgiyi düzenli bir şekilde saklamak, erişmek, güncellemek ve yönetmek için kullanılır. Genellikle yapılandırılmış veri türlerini (tablo, sütun, satır) desteklerler ve SQL (Structured Query Language) gibi sorgu dilleri aracılığıyla verilere erişim sağlarlar. Veritabanları, büyük miktarda veriyi etkili bir şekilde yönetebilme yeteneğiyle bilgi teknolojileri dünyasında kritik bir rol oynamaktadır.

Veritabanı Oluşturma

Veritabanı oluşturma, bir bilgi yönetim sisteminin temel adımlarından biridir ve verilerin saklanacağı ortamın başlangıç noktasını belirler. MySQL’de bir veritabanı oluşturmak için CREATE DATABASE ifadesi kullanılır. Bu ifade, belirtilen isimde bir veritabanı oluşturur. İsteğe bağlı olarak, IF NOT EXISTS kısmı kullanılarak, belirtilen isimde bir veritabanı zaten varsa tekrar oluşturulmaması sağlanabilir.

Örneğin, aşağıdaki kod örneği, “film_arsiv” adında bir veritabanı oluşturur ve bu veritabanını kullanır:

Bu kod, öncelikle “film_arsiv” adında bir veritabanı oluşturur. Ancak, eğer zaten böyle bir veritabanı varsa işlemi gerçekleştirmez. Daha sonra USE ifadesiyle, oluşturulan veya mevcut olan “film_arsiv” veritabanını kullanmamızı sağlar. Bu şekilde, oluşturduğumuz veritabanında işlem yapmaya hazır hale geliriz.

Tabloların Tanımlanması

Filmler Tablosu:

Bu SQL ifadesi, “filmler” adında bir tablo oluşturur. CREATE TABLE ifadesi, yeni bir tablo oluşturmak için kullanılır. IF NOT EXISTS kısmı, belirtilen isimde bir tablo zaten varsa tekrar oluşturulmamasını sağlar. Oluşturulacak tablo, “filmler” adında bir tablo olacak şekilde tanımlanır.

Tablonun sütunları ise şu şekildedir:

  • film_id: Her film için benzersiz bir kimlik numarasıdır. INT veri türüne sahiptir, 11 karakter uzunluğunda ve otomatik artan (AUTO_INCREMENT) olarak belirlenmiştir. Bu, her yeni film eklendiğinde film_id’nin otomatik olarak artacağı anlamına gelir.
  • film_ad: Film adını saklar. VARCHAR(255) veri türüyle tanımlanmıştır ve maksimum 255 karakterlik bir metin alabilir. DEFAULT NULL ifadesi, bu sütunun varsayılan olarak boş bırakılabileceğini belirtir.
  • yonetmen: Film yönetmeninin adını saklar. VARCHAR(255) veri türüyle tanımlanmıştır.
  • yil: Film yayın yılını saklar. INT(11) veri türüyle tanımlanmıştır.
  • tur: Film türünü saklar. VARCHAR(255) veri türüyle tanımlanmıştır.
  • sure: Film süresini dakika cinsinden saklar. INT(11) veri türüyle tanımlanmıştır.
  • poster: Film posterinin URL’sini saklar. VARCHAR(255) veri türüyle tanımlanmıştır.
  • imdb_puan: Film için IMDb puanını saklar. FLOAT veri türüyle tanımlanmıştır.
  • film_odul: Film ödüllü mü değil mi bilgisini saklar. BOOLEAN veri türüyle tanımlanmıştır.

Ayrıca, PRIMARY KEY (film_id) ifadesi, film_id sütununu birincil anahtar olarak belirler. Bu, her filmi tekil olarak tanımlamak için kullanılır.

Bu şekilde, “filmler” tablosu oluşturulmuş ve her bir sütunun amacı ve veri türü açıklanmıştır.

Eleştiriler Tablosu:

Bu SQL ifadesi, “elestiriler” adında bir tablo oluşturur. CREATE TABLE ifadesi, yeni bir tablo oluşturmak için kullanılır. IF NOT EXISTS kısmı, belirtilen isimde bir tablo zaten varsa tekrar oluşturulmamasını sağlar. Oluşturulacak tablo, “elestiriler” adında bir tablo olacak şekilde tanımlanır.

Tablonun sütunları ise şu şekildedir:

  • elestiri_id: Her eleştiri için benzersiz bir kimlik numarasıdır. INT veri türüne sahiptir, 11 karakter uzunluğunda ve otomatik artan (AUTO_INCREMENT) olarak belirlenmiştir.
  • film_id: Eleştirinin hangi filme ait olduğunu belirten bir yabancı anahtardır. INT(11) veri türüyle tanımlanmıştır ve varsayılan olarak NULL değer alabilir.
  • elestiri_metin: Eleştiri metnini saklar. TEXT veri türüyle tanımlanmıştır.
  • puan: Eleştirinin puanını saklar. DECIMAL(3,1) veri türüyle tanımlanmıştır.
  • elestiri_tarihi: Eleştirinin tarihini saklar. DATE veri türüyle tanımlanmıştır.
  • elestirmen: Eleştirmenin adını saklar. VARCHAR(255) veri türüyle tanımlanmıştır.

Ayrıca, PRIMARY KEY (elestiri_id) ifadesi, elestiri_id sütununu birincil anahtar olarak belirler. CONSTRAINT elestiriler_ibfk_1 FOREIGN KEY (film_id) REFERENCES filmler (film_id) ifadesi, film_id sütununu filmler tablosundaki film_id sütunuyla yabancı anahtar olarak tanımlar. Bu şekilde elestiriler tablosundaki her bir eleştirinin hangi filme ait olduğu ilişkilendirilir.

Bu şekilde, “elestiriler” tablosu oluşturulmuş ve her bir sütunun amacı ve veri türü açıklanmıştır.

Bu ALTER TABLE ifadesi, “elestiriler” tablosuna “film_id” adında bir yabancı anahtar ekler. Bu yabancı anahtar, “filmler” tablosundaki “film_id” sütununa referans verir. Bu sayede “elestiriler” tablosundaki her bir eleştiri, hangi filme ait olduğunu belirten bir ilişkiyi temsil eder.

Veri Ekleme (INSERT INTO)

Veri ekleme işlemi, mevcut tablolara yeni verilerin eklenmesini sağlar. INSERT INTO ifadesi kullanılarak yeni veriler belirtilen tabloya eklenir. Bu işlem sırasında eklenecek veriler, tablonun sütunlarına uygun bir şekilde belirtilir.

Yeni Film Ekleme:

Yeni bir film eklemek için, INSERT INTO ifadesi kullanılır ve eklemek istediğimiz film bilgileri belirtilir. Örneğin, “filmler” tablosuna yeni bir film ekleyelim:

Bu sorgu, “filmler” tablosuna “Interstellar” adında yeni bir film ekler. Film adı, yönetmeni, yılı, türü, süresi, poster URL’si, IMDb puanı ve ödül bilgisi belirtilmiştir.

Eleştiri Ekleme:

Yeni bir eleştiri eklemek için de aynı şekilde INSERT INTO ifadesi kullanılır. Eleştiriler tablosuna yeni bir eleştiri ekleyelim:

Bu sorgu, “elestiriler” tablosuna film_id’si 1 olan bir filme yeni bir eleştiri ekler. Eleştiri metni, puanı, eleştiri tarihi ve eleştirmen adı belirtilmiştir.

Bu şekilde, INSERT INTO ifadesi kullanarak yeni film ve eleştirileri kolayca ekleyebiliriz.

Veri Güncelleme (UPDATE)

Veri güncelleme işlemi, mevcut verilerin değiştirilmesini sağlar. Tablodaki bir veya daha fazla kaydın belirli sütunlarına yeni değerler atanır. Bu işlem için UPDATE ifadesi kullanılır.

Film Bilgilerini Güncelleme:

Mevcut bir film bilgisini güncellemek için UPDATE ifadesi kullanılır. Örneğin, “Interstellar” filminin süresini güncelleyelim:

Bu sorgu, “filmler” tablosundaki “Interstellar” adlı filmin süresini 180 dakika olarak günceller.

Eleştiri Bilgilerini Güncelleme:

Mevcut bir eleştiri bilgisini güncellemek için de aynı şekilde UPDATE ifadesi kullanılır. Örneğin, “Interstellar” filminin bir eleştirisinin puanını güncelleyelim:

Bu sorgu, “elestiriler” tablosundaki film_id’si 1 olan ve eleştirmeni “John Doe” olan eleştirinin puanını 9.8 olarak günceller.

Bu şekilde, UPDATE ifadesi kullanarak mevcut film ve eleştiri bilgilerini kolayca güncelleyebiliriz.

Veri Silme (DELETE)

Veri silme işlemi, tablodaki belirli bir veya birden fazla kaydın kalıcı olarak kaldırılmasını sağlar. Bu işlem için DELETE FROM ifadesi kullanılır.

Film Silme:

Belirli bir filmi silmek için DELETE FROM ifadesi kullanılır. Örneğin, “Interstellar” filmi veritabanından silmek istediğimizi düşünelim:

Bu sorgu, “filmler” tablosundan “Interstellar” adlı filmi siler. Eğer birden fazla “Interstellar” filmi varsa, tümünü siler.

Eleştiri Silme:

Belirli bir eleştiriyi silmek için de aynı şekilde DELETE FROM ifadesi kullanılır. Örneğin, “Interstellar” filmine ait bir eleştiriyi silmek istediğimizi düşünelim:

Bu sorgu, “elestiriler” tablosundan film_id’si 1 olan ve eleştirmeni “John Doe” olan bir eleştiriyi siler.

Bu şekilde, DELETE FROM ifadesi kullanarak belirli filmleri veya eleştirileri veritabanından kolayca silebiliriz.

Uygulamalar İçin SQL Dosyaları

Bu rehber kapsamında kullanılan SQL dosyasını buradan indirebilirsiniz. İndirdiğiniz SQL dosyasında, veritabanını oluşturan ve örnek veri ekleyen SQL komutları bulunacaktır.

Veri Sorgulama (SELECT)

Veri sorgulama, veritabanında saklanan bilgilerin belirli koşullara göre filtrelenerek seçilmesini sağlar. Bu işlem için en sık kullanılan SQL ifadesi SELECT ifadesidir. SELECT ifadesi, belirtilen tablodan belirli sütunları veya tüm sütunları seçmek için kullanılır.

SELECT ifadesinin temel yapısı şu şekildedir:

Bu ifade, belirtilen tablodan belirtilen sütunları seçer. Eğer tüm sütunları seçmek istiyorsak, yerine yıldız (*) karakteri kullanılır:

SELECT ifadesi aynı zamanda verileri filtrelemek için WHERE ifadesi ile birlikte kullanılabilir. Örneğin:

Aliases (AS): Sütun ve Tablo İsimlerinin Yeniden Adlandırılması

Aliases (AS), SQL sorgularında sütun veya tablo isimlerini geçici olarak yeniden adlandırmak için kullanılan bir anahtar kelimedir. Bu özellik, sorgu sonuçlarını daha anlaşılır hale getirmek veya sütunlara veya tablolara daha açıklayıcı isimler vermek için kullanılabilir. AS anahtar kelimesi, sütunların veya tabloların mevcut adlarının yerine geçici olarak kullanılmak üzere alternatif adlar (alias) belirtmek için kullanılır.

  1. Sütun Aliases (AS): Sütun İsimlerinin Yeniden Adlandırılması
  2. Tablo Aliases (AS): Tablo İsimlerinin Yeniden Adlandırılması

Bu alt başlıklar, AS anahtar kelimesinin sütun ve tablo isimlerini nasıl yeniden adlandırmak için kullanılabileceğini açıklar.

Sütun Aliases (AS): Sütun İsimlerinin Yeniden Adlandırılması:

Bu sorgu, “filmler” tablosundaki “film_ad” sütununu “film_adi” olarak ve “yil” sütununu “yayin_yili” olarak yeniden adlandırır.

Tablo Aliases (AS): Tablo İsimlerinin Yeniden Adlandırılması:

Bu sorgu, “filmler” tablosunu “f” ve “elestiriler” tablosunu “e” olarak yeniden adlandırır. “ad” ve “metin” sütunları sırasıyla “filmler” ve “elestiriler” tablolarındaki “film_ad” ve “elestiri_metin” sütunlarını temsil eder. WHERE koşulu ile iki tablo arasındaki ilişki belirtilmiştir. Bu şekilde, daha anlaşılır ve kompakt bir sorgu elde edilir.

Aliases (AS) kullanarak, SQL sorgularının sonuçlarını daha anlaşılır hale getirebilir ve sorguları daha okunabilir hale getirebiliriz. Bu, özellikle karmaşık sorguları anlamak ve yönetmek için çok yararlı olabilir.

Tablo Sorgulama ve Filtreleme: WHERE

1. Eşitlik Operatörü (=)

WHERE ifadesi, belirli bir sütunun belirli bir değere eşit olması durumunu kontrol eder. Eşitlik operatörü (=), bu tür durumları kontrol etmek için kullanılır.

Bu sorgu, “filmler” tablosundan yılı 2013 olan filmleri seçer.

2. Karşılaştırma Operatörleri (<, >, <=, >=, <>)

WHERE ifadesi, belirli bir sütunun belirli bir değerden küçük, büyük, küçük veya eşit, büyük veya eşit veya belirli bir değere eşit olmaması gibi durumları kontrol etmek için karşılaştırma operatörlerini kullanır.

Bu sorgu, “filmler” tablosundan süresi 120 dakikadan fazla olan filmleri seçer.

3. LIKE Operatörü

WHERE ifadesi, belirli bir desene uygun olan verileri seçmek için LIKE operatörü ile kullanılır. Bu operatör, metin tabanlı sütunlarda özel desenlere göre arama yapmak için kullanılır.

Bu sorgu, “filmler” tablosundan film adı “Çılgın” ile başlayan filmleri seçer.

Bu alt başlıklar, WHERE ifadesinin temel kullanımlarını açıklar ve farklı durumları filtreleme yeteneklerini gösterir.

AND, OR, NOT: Birden Fazla Koşulun Birlikte Kullanımı

WHERE ifadesi, tek bir koşulun sağlanmasını belirlemek için kullanıldığı gibi, birden fazla koşulun birlikte kullanılmasıyla daha karmaşık sorgular oluşturmak için de kullanılabilir. Bu durumda, AND, OR ve NOT mantıksal operatörleri kullanılır.

AND Operatörü: WHERE ifadesi içinde kullanılan AND operatörü, her iki koşulun da sağlanması durumunda sorgu sonucunu döndürür. Örneğin, “filmler” tablosundan 2000’den sonra yayınlanan ve IMDb puanı 8’den büyük olan filmleri seçmek için:

OR Operatörü: WHERE ifadesi içinde kullanılan OR operatörü, en az bir koşulun sağlanması durumunda sorgu sonucunu döndürür. Örneğin, “filmler” tablosundan bilim kurgu veya aksiyon türündeki filmleri seçmek için:

NOT Operatörü: WHERE ifadesi içinde kullanılan NOT operatörü, belirtilen koşulun doğru olmadığı durumları seçmek için kullanılır. Örneğin, “filmler” tablosundan IMDb puanı 7’den düşük olan filmleri seçmek için:

Bu operatörlerin kullanımıyla, daha karmaşık sorgular oluşturmak mümkün olur. Bu sayede, birden fazla koşulu bir araya getirerek istenilen verileri daha detaylı bir şekilde seçmek mümkün hale gelir.

ORDER BY: Sorgu Sonuçlarının Sıralanması

ORDER BY ifadesi, SQL sorgularında sorgu sonuçlarının belirli bir sıraya göre düzenlenmesini sağlar. Bu ifade, SELECT sorgusu içinde kullanılarak sorgu sonuçlarının istenilen sıraya göre düzenlenmesini sağlar. ORDER BY ifadesi ile belirtilen sıralama, belirli bir sütunun değerlerine veya birden fazla sütuna göre yapılabileceği gibi artan (ASC) veya azalan (DESC) sıralama şekilleri de belirtilebilir. Örneğin, bir film listesini yayın yılına göre artan şekilde sıralamak veya eleştirileri puanlarına göre azalan şekilde sıralamak gibi işlemler ORDER BY ifadesi kullanılarak gerçekleştirilebilir.

  1. Tek Sütuna Göre Sıralama
  2. Birden Fazla Sütuna Göre Sıralama
  3. Artan (ASC) ve Azalan (DESC) Sıralama

Bu alt başlıklar, ORDER BY ifadesinin farklı kullanımlarını ve seçeneklerini açıklamak için kullanılabilir. Her bir alt başlık, belirli bir sıralama türünü ve nasıl kullanılabileceğini açıklar.

Tek Sütuna Göre Sıralama:

Bu sorgu, “filmler” tablosundaki filmleri yayın yılına göre artan şekilde sıralar.

Birden Fazla Sütuna Göre Sıralama:

Bu sorgu, “elestiriler” tablosundaki eleştirileri önce puanlarına göre azalan şekilde, ardından eleştiri tarihlerine göre artan şekilde sıralar.

Artan (ASC) ve Azalan (DESC) Sıralama:

Bu sorgu, “filmler” tablosundaki filmleri sürelerine göre azalan şekilde sıralar.

LIMIT: Sorgu Sonuçlarının Sınırlandırılması

LIMIT ifadesi, SQL sorgularında dönen sonuçların belirli bir aralıkta veya belirli bir sayıda sınırlandırılmasını sağlar. Bu ifade, SELECT sorgusu içinde kullanılarak sorgu sonuçlarının istenilen sayıda veya belirli bir aralıkta alınmasını sağlar. LIMIT ifadesi ile belirtilen sınır, sonuçların başlangıç ve bitiş indeksleri veya doğrudan alınacak maksimum kayıt sayısı olarak belirtilebilir. Örneğin, sorgu sonuçlarının ilk 10 kaydını almak veya belirli bir aralıktaki kayıtları almak gibi işlemler LIMIT ifadesi kullanılarak gerçekleştirilebilir.

  1. Belirli Bir Sayıda Kayıt Almak
  2. Belirli Bir Aralıktaki Kayıtları Almak

Bu alt başlıklar, LIMIT ifadesinin farklı kullanımlarını ve seçeneklerini açıklamak için kullanılabilir. Her bir alt başlık, belirli bir sınır türünü ve nasıl kullanılabileceğini açıklar.

Belirli Bir Sayıda Kayıt Almak:

Bu sorgu, “filmler” tablosundaki filmleri yayın yılına göre azalan şekilde sıralar ve sorgu sonuçlarının ilk 5 kaydını alır.

Belirli Bir Aralıktaki Kayıtları Almak:

Bu sorgu, “elestiriler” tablosundaki eleştirileri 5. kayıttan başlayarak 10 kayıt alır. Bu, 6. kayıttan 15. kayıta kadar olan eleştirileri getirir.

NULL Değerler: Boş Değerlerin Kullanımı ve İşlenmesi

NULL değeri, bir sütunun veya alanın değerinin bilinmediği, atanmadığı veya mevcut olmadığı durumları temsil eder. NULL, SQL’de bir veri değeri olarak kullanılabilir ve bir tablodaki sütunlar için boş bir değer belirtir. NULL değeri, veritabanı tablosunda saklanabilen geçerli bir değerdir ve belirli koşullara göre filtrelenir veya işlenir. NULL değeri, veritabanı tablolarında belirli bir sütunun boş olabileceği durumları işaret etmek için sıklıkla kullanılır.

  1. NULL Değerlerin Filtrelenmesi
  2. IS NULL ve IS NOT NULL Operatörleri
  3. NULL Değerlerin İşlenmesi

Bu alt başlıklar, NULL değerlerin belirli bir sütunda nasıl işleneceğini ve nasıl işlenebileceğini açıklamak için kullanılabilir.

NULL Değerlerin Filtrelenmesi:

Bu sorgu, “filmler” tablosundaki poster sütunu NULL olan filmleri seçer.

IS NULL ve IS NOT NULL Operatörleri:

Bu sorgu, “elestiriler” tablosundaki elestiri_metin sütunu NULL olmayan eleştirileri seçer.

NULL Değerlerin İşlenmesi:

Bu sorgu, “filmler” tablosundaki imdb_puan sütunundaki NULL olmayan değerlerin ortalamasını hesaplar.

MIN and MAX: En Küçük ve En Büyük Değerlerin Bulunması

MIN ve MAX fonksiyonları, bir sütunun en küçük (minimum) veya en büyük (maksimum) değerini bulmak için kullanılır. Bu fonksiyonlar, SQL sorgularında kullanılarak belirli bir sütundaki en küçük veya en büyük değeri döndürür. Bu fonksiyonlar, özellikle bir sütunun minimum veya maksimum değerini bulmak veya belirli bir aralıktaki en küçük veya en büyük değeri bulmak için yaygın olarak kullanılır.

  1. MIN Fonksiyonu: En Küçük Değerin Bulunması
  2. MAX Fonksiyonu: En Büyük Değerin Bulunması

Bu alt başlıklar, MIN ve MAX fonksiyonlarının farklı kullanımlarını ve belirli bir sütundaki en küçük veya en büyük değerleri bulmak için nasıl kullanılabileceğini açıklar.

MIN Fonksiyonu: En Küçük Değerin Bulunması:

Bu sorgu, “filmler” tablosundaki yil sütunundaki en küçük değeri (en eski film yılı) bulur.

MAX Fonksiyonu: En Büyük Değerin Bulunması:

Bu sorgu, “filmler” tablosundaki imdb_puan sütunundaki en büyük değeri (en yüksek IMDb puanı) bulur.

Bu şekilde, MIN ve MAX fonksiyonları kullanılarak belirli bir sütundaki en küçük veya en büyük değerler kolayca bulunabilir.

COUNT, AVG, SUM: Verilerin Sayılması, Ortalama ve Toplam Değerlerin Hesaplanması

COUNT, AVG ve SUM, SQL sorgularında veri analizi için kullanılan yaygın agregat fonksiyonlarıdır. Bu fonksiyonlar, belirli bir sütundaki değerlerin sayısını (COUNT), ortalamasını (AVG) veya toplamını (SUM) hesaplamak için kullanılır. Bu fonksiyonlar, genellikle GROUP BY ifadesiyle birlikte kullanılarak verilerin gruplanması ve analiz edilmesi için kullanılır.

  1. COUNT Fonksiyonu: Verilerin Sayılması
  2. AVG Fonksiyonu: Verilerin Ortalaması
  3. SUM Fonksiyonu: Verilerin Toplam Değeri

Bu alt başlıklar, COUNT, AVG ve SUM fonksiyonlarının farklı kullanımlarını ve belirli bir sütundaki verilerin sayılması, ortalama ve toplam değerlerinin nasıl hesaplanacağını açıklar.

COUNT Fonksiyonu: Verilerin Sayılması:

Bu sorgu, “filmler” tablosundaki tüm filmlerin sayısını hesaplar.

AVG Fonksiyonu: Verilerin Ortalaması:

Bu sorgu, “filmler” tablosundaki filmlerin IMDb puanlarının ortalamasını hesaplar.

SUM Fonksiyonu: Verilerin Toplam Değeri:

Bu sorgu, “filmler” tablosundaki filmlerin sürelerinin toplamını hesaplar.

Bu şekilde, COUNT, AVG ve SUM fonksiyonları kullanılarak veri analizi yapılabilir ve belirli bir sütundaki verilerin özetini alınabilir.

IN Operatörü: Birden Fazla Değere Göre Filtreleme

IN operatörü, SQL sorgularında bir sütunun birden fazla değere göre filtrelenmesini sağlar. Bu operatör, belirli bir sütunda bulunan değerlerin bir liste veya alt sorgu içinde belirtilen değerlere eşleşip eşleşmediğini kontrol eder. IN operatörü, birden fazla değeri tek bir sorguda belirtmek ve bu değerlere göre filtreleme yapmak için kullanılır.

Alt Başlık:

  1. IN Operatörünün Kullanımı
  2. IN Operatörü ile Alt Sorgu Kullanımı

Bu alt başlıklar, IN operatörünün farklı kullanım biçimlerini ve nasıl çalıştığını açıklar.

IN Operatörünün Kullanımı:

  • IN operatörü, WHERE ifadesinde kullanılarak bir sütunun birden fazla değere göre filtrelenmesini sağlar.
  • IN operatörü, bir liste içinde belirtilen değerlerle eşleşen kayıtları döndürür.
  • IN operatörü, virgülle ayrılmış bir liste içinde belirtilen değerlerle eşleşen kayıtları döndürür.

IN Operatörü ile Alt Sorgu Kullanımı:

  • IN operatörü, bir alt sorgu kullanılarak da çalıştırılabilir. Bu durumda, alt sorgu içinde belirtilen değerlerle eşleşen kayıtlar döndürülür.

Örnekler:

  1. IN Operatörünün Kullanımı:

Bu sorgu, “filmler” tablosundaki “yonetmen” sütununda “Christopher Nolan” veya “Steven Spielberg” olan tüm filmleri seçer.

  1. IN Operatörü ile Alt Sorgu Kullanımı:

Bu sorgu, “filmler” tablosundaki “yonetmen” sütununda, 2000 yılından sonra bir film çeken tüm yönetmenlerin filmlerini seçer.

BETWEEN: Bir Aralıktaki Değerleri Filtreleme

BETWEEN operatörü, SQL sorgularında belirli bir aralıktaki değerleri filtrelemek için kullanılır. BETWEEN operatörü, bir sütundaki değerlerin belirli bir aralık içinde olup olmadığını kontrol etmek için kullanılır. Bu, özellikle sayısal veya tarih verilerini filtrelemek için yararlıdır.

Alt Başlık:

  1. BETWEEN Operatörünün Kullanımı

Bu alt başlık, BETWEEN operatörünün nasıl kullanıldığını ve değerleri belirli bir aralık içine filtrelemede nasıl işlev gördüğünü açıklar.

BETWEEN: Belirli Bir Aralıktaki Değerleri Seçme

BETWEEN operatörü, SQL sorgularında belirli bir aralıktaki değerleri seçmek için kullanılır. Bu operatör, bir değerin başlangıç ve bitiş değerleri arasında olup olmadığını kontrol eder. Aralık, sayısal, tarih veya zaman değerleri olabilir.

Konu Anlatımı:

BETWEEN operatörü, genellikle WHERE koşulu içinde kullanılır. Sözdizimi aşağıdaki gibidir:

Bu sorgu, “sütun_adı” sütunundaki değerlerin “değer1” ve “değer2” arasında olduğu tüm satırları seçer.

Örnekler:

  1. Sayısal Değerlerin Seçimi:

Bu sorgu, “filmler” tablosundaki “yil” sütunundaki değerlerin 1990 ile 2000 arasında olduğu tüm filmleri seçer.

  1. Tarih Değerlerinin Seçimi:

Bu sorgu, “elestiriler” tablosundaki “elestiri_tarihi” sütunundaki değerlerin 2024 yılının Nisan ayı boyunca olan tüm eleştirileri seçer.

LIKE: Desen Eşleştirme ile Veri Filtreleme

LIKE, SQL sorgularında desen eşleştirmesi yaparak verileri filtrelemek için kullanılan bir operatördür. LIKE operatörü, bir sütunun değeri ile belirli bir deseni karşılaştırarak eşleşen veya eşleşmeyen verileri seçmek için kullanılır. Bu, özellikle metin tabanlı sütunlardaki belirli bir kelimeyi veya deseni içeren verileri seçmek için yararlıdır.

LIKE operatörünün nasıl kullanıldığını ve desen eşleştirmesi ile verilerin nasıl filtrelenmesinin sağlandığını açıklar.

LIKE Operatörü: Desen Eşleştirme ile Veri Filtreleme:

Bu sorgu, “filmler” tablosundaki “film_ad” sütununda “Harry Potter” ifadesini içeren tüm filmleri seçer. “%” karakteri, herhangi bir karakter dizisinin yerine geçer ve desenin başında ve sonunda kullanıldığında sıfır veya daha fazla karakter dizisini temsil eder.

LIKE Operatörü ile Desen Eşleştirme:

u sorgu, “filmler” tablosundaki “yonetmen” sütununda “Christopher Nolan” ile başlayan tüm filmleri seçer. “%” karakteri yine herhangi bir karakter dizisinin yerine geçer ancak sadece desenin sonunda kullanıldığında geçerlidir. Bu nedenle, “Christopher Nolan” ile başlayan ancak sonrasında herhangi bir karakter dizisi gelebilecek olan tüm değerleri seçer.

LIKE operatörü, SQL sorgularında metin tabanlı sütunlardaki belirli desenlere sahip verileri seçmek için çok kullanışlı bir araçtır. Desenlerin kullanımıyla, veritabanındaki istenilen verilere hızlı ve etkili bir şekilde erişilebilir.

Wildcards (Genel Karakterler): Desen Eşleştirmesi için Özel Karakterler

Wildcards, SQL sorgularında desen eşleştirmesi yapmak için kullanılan özel karakterlerdir. Desen eşleştirmesi, belirli bir desene uyan veya uymayan verileri seçmek için kullanılır. Genel karakterler, LIKE operatörü ile birlikte kullanılarak veri filtreleme işlemlerinde çok işe yarar.

  1. Genel Karakterlerin Kullanımı
  2. Genel Karakterlerin Türleri

Bu alt başlıklar, genel karakterlerin farklı türlerini ve nasıl kullanıldığını açıklar.

Genel Karakterlerin Kullanımı:

  • % (Yüzde İşareti): Herhangi bir karakter dizisini temsil eder. Sıfır, bir veya birden fazla karakter dizisi olabilir.
  • _ (Alt Çizgi): Tek bir karakteri temsil eder. Herhangi bir karakter yerine geçer.

Genel Karakterlerin Türleri:

  • % (Yüzde İşareti): Desenin başında, sonunda veya her iki tarafında kullanılabilir.
  • _ (Alt Çizgi): Desen içinde herhangi bir pozisyonda kullanılabilir.

Örnekler:

  1. % (Yüzde İşareti) Kullanımı:

Bu sorgu, “filmler” tablosundaki “film_ad” sütununda “Harry Potter” ifadesini içeren tüm filmleri seçer.

_ (Alt Çizgi) Kullanımı:

Bu sorgu, “filmler” tablosundaki “film_ad” sütununda ikinci karakteri “a” olan ve “arry Potter” ile başlayan tüm filmleri seçer.

Wildcards, SQL sorgularında desen eşleştirmesi yapmak için güçlü bir araçtır ve veri filtreleme işlemlerini daha esnek hale getirir.

JOIN: İlişkili Tablolar Arasında Veri Birleştirme

JOIN, SQL sorgularında ilişkili tablolar arasında verilerin birleştirilmesi için kullanılan bir operatördür. İlişkili tablolar, genellikle yabancı anahtarlar aracılığıyla bağlanmış tablolardır. JOIN operatörü, bu ilişkili tablolar arasındaki ilişkileri kullanarak verileri birleştirir ve tek bir sonuç kümesi olarak döndürür.

JOIN operatörü, genellikle FROM ifadesi içinde kullanılır ve birleştirme işlemini belirli bir koşula göre gerçekleştirir. SQL’de yaygın olarak kullanılan JOIN türleri şunlardır: INNER JOIN, LEFT JOIN, RIGHT JOIN ve FULL JOIN.

  • INNER JOIN: İki tablo arasındaki ortak alanlara göre birleştirme yapar.
  • LEFT JOIN: Sol tablo ile sağ tablo arasındaki ortak alanlara göre birleştirme yapar ve sol tablodaki tüm kayıtları getirir.
  • RIGHT JOIN: Sol tablo ile sağ tablo arasındaki ortak alanlara göre birleştirme yapar ve sağ tablodaki tüm kayıtları getirir.
  • FULL JOIN: İki tablo arasındaki tüm kayıtları birleştirir.

Örnekler:

  1. INNER JOIN Örneği:

Bu sorgu, “filmler” ve “elestiriler” tablolarını birleştirir ve sadece ortak film ID’lerine sahip satırları getirir. Yani, sadece iki tabloda da ortak olan filmleri seçer.

  1. LEFT JOIN Örneği:

Bu sorgu, “filmler” tablosundaki tüm filmleri getirir ve bu filmlere eşleşen eleştiri varsa onları da getirir. Eğer eleştiri yoksa bile film bilgilerini getirir.

  1. RIGHT JOIN Örneği:

Bu sorgu, “elestiriler” tablosundaki tüm eleştirileri getirir ve bu eleştirilere eşleşen film bilgilerini getirir. Eğer film bilgisi yoksa bile eleştirileri getirir.

  1. FULL JOIN Örneği:

Bu sorgu, “filmler” ve “elestiriler” tablolarındaki tüm bilgileri getirir. Eğer herhangi bir tabloda eşleşen bilgi yoksa bile, diğer tablodaki bilgileri getirir.

BETWEEN, COUNT, WHERE ve ORDER BY Kullanımı:

Bu sorgu, 2000 ile 2010 yılları arasında yayınlanan filmleri seçer. Her filmin eleştiri sayısını sayar, en çok eleştiri alan filmden en az eleştiri alan filme doğru sıralar.

  1. IN, AS ve LIMIT Kullanımı:

Bu sorgu, Christopher Nolan veya Quentin Tarantino tarafından yönetilen filmleri seçer. İlgili eleştirileri getirir ve sadece ilk 5 sonucu gösterir.

  1. AS, WHERE ve ORDER BY Kullanımı:

Bu sorgu, 2023 yılında yapılan eleştirileri seçer. Filmlerin adlarını “film” olarak, eleştiri metinlerini “yorum” olarak adlandırır ve eleştiri tarihine göre en son eleştiriden en eskiye doğru sıralar.

  1. COUNT, WHERE ve GROUP BY Kullanımı:

Bu sorgu, en az 8 puana sahip eleştirilere sahip filmlerin türlerini seçer. Her türün kaç film içerdiğini sayar.

  1. IN, ORDER BY ve LIMIT Kullanımı:

Bu sorgu, 1994, 1999 veya 2008 yılında yayınlanan filmleri seçer. Eleştirilere göre en yüksek puandan en düşük puana doğru sıralar ve sadece ilk 10 sonucu gösterir.

GROUP BY: Verileri Gruplama

GROUP BY ifadesi, SQL sorgularında verileri belirli bir kritere göre gruplamak için kullanılır. Bu kritere göre, aynı değere sahip olan satırlar bir grup oluşturur. Ardından, her grup için bir veya daha fazla toplama işlemi (örneğin, COUNT, SUM, AVG) yapılabilir.

GROUP BY ifadesi, genellikle SELECT ifadesi içinde kullanılır ve genellikle bir toplama işlemiyle birlikte kullanılır. Gruplama işlemi, sorgudaki belirli bir sütuna göre yapılır ve bu sütunda aynı değere sahip olan satırlar bir grup olarak ele alınır.

Örnek:

Örneğin, bir film veritabanında her türün kaç film içerdiğini görmek istediğinizi varsayalım. GROUP BY ifadesi kullanarak bu bilgiyi alabilirsiniz.

Bu sorgu, “filmler” tablosundaki filmleri türlerine göre gruplar. Her bir tür için kaç film olduğunu sayar ve sonuçları türe göre gruplar. Bu sayede, her bir türün kaç film içerdiğini görebilirsiniz.

HAVING: Grupların Koşullu Filtrelenmesi

HAVING ifadesi, SQL sorgularında GROUP BY ifadesi ile birlikte kullanılarak gruplar üzerinde koşullu filtreleme yapmak için kullanılır. Genellikle GROUP BY ifadesinden sonra gelir ve GROUP BY ifadesinden sonra gerçekleşen toplama işlemleri üzerinde filtreleme yapmak için kullanılır.

Açıklama:

HAVING ifadesi, genellikle GROUP BY ifadesi ile birlikte kullanılır ve gruplar üzerinde koşullu filtreleme yapmak için kullanılır. WHERE ifadesi tekil satırları filtrelerken, HAVING ifadesi grupları filtreler.

Örnekler:

  1. Toplamı Filtreleme:

Bu sorgu, her türün film sayısını sayar ve sadece 3’ten fazla film içeren türleri seçer.

  1. Ortalama Filtreleme:

Bu sorgu, her türün IMDb puanının ortalamasını hesaplar ve sadece 8.0’den yüksek ortalamaya sahip türleri seçer.

  1. Toplamı ve Ortalamayı Filtreleme:

Bu sorgu, her türün film sayısını ve IMDb puanının ortalamasını hesaplar ve sadece 2’den fazla film içeren ve 7.0’den yüksek bir IMDb puan ortalamasına sahip türleri seçer.

  1. Toplamı ve Ortalamayı Filtreleme (Alt Sorgu Kullanarak):

Bu sorgu, 2000’den sonraki yıllarda yayınlanan filmlerin toplam sayısının ve IMDb puanının ortalamasının üzerinde olan türleri seçer.

MYSQL Sorgu Örnekleri

Örnek 1: Tüm filmleri listeleme

Örnek 2: filmler tablosundan 1990 ve 2000 yılları arasındaki filmleri listeleme

Örnek 3: En yüksek IMDb puanına sahip filmi listeleme

Örnek : Tüm yönetmenleri listeleme

Örnek : Kaç farklı yönetmen olduğunu listeleyin

Örnek : “Dram” türüne ait filmleri listeleme

Örnek : 100 dakikanın altındaki filmleri listeleme

Örnek : 100 dakikanın altındaki filmlerin sayısını, en kısa ve en uzun süreyi, ve ortalama süreyi bulan sorgulama

Örnek : Belirli bir türde olan filmlerden 2000 yılından önce çıkanları ve 90 dakikadan kısa sürenleri listeleme

Örnek : Belirli bir türdeki filmlerden en yüksek IMDb puanına sahip olanı veya 2000 yılından önce çıkanları listeleme

Örnek : Belirli bir yıldan önce çıkan filmlerin eleştirmenlerini listeleme

Örnek : Boş eleştiri metni olan filmleri listeleme

Örnek : Eleştiri yapılmamış filmleri listeleme

Örnek : Boş postere sahip filmleri listeleme

Örnek : En son eklenen 10 eleştiriyi listeleme

Örnek : En yüksek IMDb puanına sahip olan 5 filmi listeleme

Örnek : Türü “Aksiyon” olan ve en yüksek IMDb puanına sahip 3 filmi listeleme

Örnek : 2010 yılından önceki tüm filmleri en son eklenen 5 eleştirisiyle birlikte listeleme

Örnek : 120 dakikaya en yakın 5 filmi listeleme

Örnek : Her yıl içinde en uzun süreye ait olan filmleri listeleme

Örnek: Tüm türleri listeleme(bazı türler virgülle ayrılmıştır sorguyu buna dikkat ederek yapın)

Eğer türler virgülle ayrılmış olmasaydı sorgu şu şekilde olacaktır

Regular Exp ile virgülleri parçalayarak sorgulama yapılacaksa şu şekilde de yapılabilir

REGEXP_SUBSTR() fonksiyonu, bir dizeden belirli bir deseni (regular expression) eşleştiren ve bu eşleşmeyi döndüren bir SQL fonksiyonudur. Bu fonksiyon, bir dizenin belirli bir deseni içeren alt dizisini bulmak için kullanılır.

Sonuç

Bu makalede, MySQL veritabanı yönetimi temel kavramlarını ele aldık ve MySQL ile ilişkili bir dizi önemli konuyu açıkladık. Başlangıç seviyesinden başlayarak, veritabanı oluşturma, tablo tanımlama ve veri manipülasyonu gibi temel işlemlerden başlayarak, daha ileri düzey konulara kadar birçok konuyu ele aldık.

Makalede ele alınan ana konular şunlardır:

  1. Veri Tabanı Oluşturma ve Tabloların Tanımlanması: MySQL’de veritabanı oluşturma işlemi ve tabloların nasıl tanımlanacağı konusunda bilgi verildi. Tablolar arasındaki ilişkiler ve yabancı anahtarlar da bu bölümde açıklandı.
  2. Veri Ekleme, Güncelleme ve Silme İşlemleri: INSERT INTO, UPDATE ve DELETE ifadeleri kullanılarak veritabanına veri ekleme, güncelleme ve silme işlemleri nasıl gerçekleştirileceği anlatıldı.
  3. Veri Sorgulama: SELECT ifadesi ile birlikte WHERE, ORDER BY, LIMIT, GROUP BY ve HAVING ifadeleri kullanılarak veri sorgulama işlemleri yapıldı. Veritabanından veri seçme, sıralama, sınırlama ve gruplama gibi işlemler açıklandı.
  4. JOIN Operatörü: İlişkili tablolar arasında veri birleştirme işlemleri için JOIN operatörünün nasıl kullanılacağı öğretildi. INNER JOIN, LEFT JOIN, RIGHT JOIN ve FULL JOIN gibi farklı türlerde JOIN operatörleri anlatıldı.
  5. Diğer Kavramlar: BETWEEN, IN, AS, COUNT, AVG, SUM, LIKE, NULL Values ve Aliases gibi diğer önemli kavramlar da açıklandı ve örnekler verildi.

Bu makale, MySQL ile veri tabanı yönetimi konusunda temel bilgileri edinmek isteyenler için bir kılavuz niteliğindedir. MySQL’in güçlü ve esnek yapısını kullanarak veri tabanı yönetimi becerilerini geliştirmek isteyenler için iyi bir başlangıç noktası olabilir.

Yorum Yap

Yorum yapmak için tıklayın