ChatGTP ile SQL Öğrenme
SQL (Structured Query Language) veritabanı yönetim sistemi için kullanılan bir programlama dilidir. SQL, veritabanlarının yapısını ve verilerini yönetmek için kullanılan bir dildir. SQL, veritabanlarındaki verileri sorgulamak, eklemek, değiştirmek ve silmek gibi işlemleri gerçekleştirmek için kullanılır.
SQL, veritabanı yönetim sistemi (DBMS) tarafından desteklenir. Örneğin, MySQL, Microsoft SQL Server, Oracle, PostgreSQL gibi popüler veritabanı yönetim sistemleri SQL dilini destekler. Bu sistemler, SQL komutlarını alır ve veritabanı için gerekli işlemleri gerçekleştirir.
SQL, veritabanlarının yapısını oluşturmak ve verileri yönetmek için kullanılan Data Definition Language (DDL) ve Data Manipulation Language (DML) gibi özel birçok dil içerir.
SQL (Structured Query Language) veritabanlarını yönetmek için kullanılan bir dil. Aşağıda SQL’nin temel komutlarının bazı örnekleri verilmiştir:
- SELECT: Veritabanındaki verileri sorgulamak için kullanılır. Örnek: “SELECT ad, soyad FROM öğrenciler”
- INSERT: Veritabanına yeni veri eklemek için kullanılır. Örnek: “INSERT INTO öğrenciler (ad, soyad, okul_no) VALUES (‘Ahmet’, ‘Yılmaz’, ‘123456’)”
- UPDATE: Veritabanındaki verileri güncellemek için kullanılır. Örnek: “UPDATE öğrenciler SET ad = ‘Mehmet’, soyad = ‘Çelik’ WHERE id = 1”
- DELETE: Veritabanındaki verileri silmek için kullanılır. Örnek: “DELETE FROM öğrenciler WHERE id = 3”
- CREATE: Veritabanındaki bir tablo oluşturmak için kullanılır. Örnek: “CREATE TABLE öğrenciler (id INT PRIMARY KEY, ad VARCHAR(255), soyad VARCHAR(255), okul_no VARCHAR(255))”
- ALTER: Veritabanındaki bir tablonun yapısını değiştirmek için kullanılır. Örnek: “ALTER TABLE öğrenciler ADD email VARCHAR(255)”
- DROP: Veritabanındaki bir tablo veya görünümü silmek için kullanılır. Örnek: “DROP TABLE öğrenciler”
Not: Örneklerde verilerin gerçek değerleri kullanılmamıştır. Sorgu işlemlerine ek olarak kolaylaştıran komutlar aşağıdaki gibidir.
- JOIN: Bir veya daha fazla tablonun verilerini birleştirmek için kullanılır. Örnek: “SELECT öğrenciler.ad, öğrenciler.soyad, dersler.ders_adı FROM öğrenciler JOIN dersler ON öğrenciler.id = dersler.öğrenci_id”
- WHERE: Sorgularda belirli koşulları karşılamak için kullanılır. Örnek: “SELECT ad, soyad FROM öğrenciler WHERE okul_no = ‘123456’”
- GROUP BY: Sorgularda verileri gruplandırmak için kullanılır. Örnek: “SELECT okul, COUNT(*) FROM öğrenciler GROUP BY okul”
- HAVING: GROUP BY komutu ile birlikte kullanılır ve gruplanmış verilerde belirli koşulları karşılamak için kullanılır. Örnek: “SELECT okul, COUNT() FROM öğrenciler GROUP BY okul HAVING COUNT() > 100″
- ORDER BY: Sorgularda sonuçların sıralanmasını belirlemek için kullanılır. Örnek: “SELECT ad, soyad FROM öğrenciler ORDER BY soyad ASC”
- Ayrıca, veritabanlarına bağlantı kurmak, işlemleri geri almak veya kaydetmek gibi işlemler için de diğer komutlar mevcut. Örneğin, veritabanına bağlantı kurmak için kullanılan “CONNECT” veya “CONNECT TO” komutları, işlemleri geri almak için “ROLLBACK” veya kaydetmek için “COMMIT” komutları.
Tabii, aşağıdaki örnekte veritabanımızda “Ürünler” adlı bir tablo var ve bu tabloda “ürün_id”, “ürün_adı”, “fiyat” ve “stok_miktarı” gibi sütunlar bulunmaktadır.
Bu sorgu, stok_miktarı 50’den büyük ve fiyatı 100 dolardan daha az olan tüm ürünlerin isimlerini, fiyatlarını ve stok miktarlarını döndürür.
Bu sorgu, adında “phone” içeren tüm ürünlerin sayısını döndürür.
Bu sorgu, tüm ürünlerin toplam fiyatını döndürür.
Aşağıdaki örnekte veritabanımızda “Müşteriler” ve “Siparişler” adlı iki tablomuz var. “Müşteriler” tablosunda “müşteri_id”, “ad”, “soyad” ve “adres” gibi sütunlar bulunmaktadır. “Siparişler” tablosunda ise “sipariş_id”, “müşteri_id”, “ürün_id”, “adet” ve “tarih” gibi sütunlar bulunmaktadır.
Bu sorgu, müşterilerin adlarını, soyadlarını ve yaptıkları toplam sipariş sayısını döndürür. JOIN komutu ile Müşteriler ve Siparişler tabloları arasındaki ilişki kurulmuş ve GROUP BY komutu ile müşterilerin her birinin sipariş sayısının toplamı elde edilmiştir.
Bu sorgu, ürünlerin adlarını ve toplam satış adedini döndürür. JOIN komutu ile Siparişler ve Ürünler tabloları arasındaki ilişki kurulmuş ve GROUP BY komutu ile her bir ürünün satış adedlerinin toplamı elde edilmiştir. HAVING komutu ile sadece 50'den fazla satılan ürünler seçilmiştir.
Bu sorgu, müşterilerin adlarını, soyadlarını,adreslerini ve yaptıkları siparişlerin tarihlerini döndürür. JOIN komutu ile Müşteriler ve Siparişler tabloları arasındaki ilişki kurulmuş ve WHERE komutu ile sadece 2022 yılı içerisinde yapılan ve adeti 5’ten fazla olan siparişler seçilmiştir. ORDER BY komutu ile tarihe göre sıralama yapılmıştır, dolayısıyla en son siparişler ilk olarak listelenmiştir.