ADIM ADIM SQL — 1

Esin Çağla Kıral
11 min readMar 22, 2024

--

Merhabalar arkadaşlar, Bu blog aslında başlatmış olduğum adım adım SQL serimin ilk yazısı olacaktır. SQL öğrenirken almış olduğum notlarımı daha kapsamlı, detaylı ve bol örnekli hale getirerek edinmiş olduğum bilgilerle sizlere de aktarmak istedim.

Adım Adım SQL -1 blog’ umun konu başlıkları olarak aşağıdaki konulardan bahsetmek isterim:

DATA TYPES

DDL KOMUTLARI

DML KOMUTLARI

GRUPLANDIRMALAR VE OPERATÖRLER

Haydi o halde başlayalım :)

Öncelikle SQL’e başlamadan önce bilindiği üzere SQL Management Server’dan DATABASE oluşturuyoruz ardından tablolar oluşturup, tablolar arası ilişkiler kurabilip, diyagramlar oluşturabiliyoruz.

Bunlardan bahsetmeyeceğim çünkü youtube’da bir çok kaynak var bunlarla alakalı. Ben bu yazımda sorgulardan bahsedeceğim örnekleriyle. Öncelikle biraz veri tipleri hakkında bilgi edinelim istiyorum.

DATA TYPES

Bilindiği üzere tablo design’ı yaparken data types de seçiyoruz. İşte data type seçiminde eklemek istediğimiz sütunun gerektirdiği doğrultuda uygun bir veri tipi seçimi önemlidir. Aşağıda en çok kullanılan ve bilinmesi gerekli olan bazı veri tipleri yer alıyor:

· bit: true false durumlarında (evli / bekar, askerlik yapmış / yapmamış)

· char: sabit uzunluktaki karakterler için (tc no(11), tel no(12 vs))

· decimal: ondalıklı veri tipleri (para birimi, not)

· image: resimlerle alakalı pek kullanılmaz (çok şişiriyo)

· smalldate: tarihlerde kullanılır

· smallint: küçük tam sayılar için +_ 32650

· time: tarih zaman

· tinyint: bu da önemli , küçük sayılar için aralığı ise 0–255

· varchar(): string ifadeler için, parantez içine uzunluğu verebiliriz(name, title, description gibi)

NOT: Decimal(x,y)

— x: Virgülden önceki basamak sayısı

— y: Virgülden sonraki basamak sayısı

— ortalama: 78,65 olsun => Decimal(4,2) => burdaki 4 iki taraftaki basamak sayısı toplamını ifade eder (ortalama en fazla 100 olabileceği için 100,00 için toplam basamak sayısı 5 olduğundan Decimal (5,2) demek uygun format olacaktır)

Uygun şekilde tablo tasarımı yapıldıktan sonra tabloya veri girişlerinden sonra Id’ lerin otomatik artması için is identity => yes yapılmalı (kimlik özelleştirme). Bunu da unutmuyoruzz :)

DDL KOMUTLARI

DDL komutları => Create, Alter, Drop komutlarını içerir ve TABLO ÜZERİNDE DEĞİŞİKLİKLER YAPAR. Büyük harfle yazmamın sebebi bu ayrımı unutmamak gerekir. DDL komutları Tablo üzerinde değişiklik yapmaktadır. yani tablo oluşturma sütun silme gibi işlemler yapmamıza olanak sağlar.

CREATE KOMUTU: Tablo oluşturmaya yarar. Aşağıda TBLDERSLER tablosu oluşturulmuştur, tabloya DERSID ve DERSAD sütunları veri tipleriyle beraber eklenmiştir.

Create Table TBLDERSLER
(
DERSID tinyint,
DERSAD varchar(20)
)

ALTER KOMUTU: Tablonun sütunlarında değişiklik yapmamızı sağlar yani sütun eklememize ya da silme işlemlerini Alter komutu ile Add ve Drop komutlarını kullanarak yapabiliriz. Aşağıda TBLDERSLER tablosuna KONTENJAN sütunu eklenmiştir.

Alter Table TBLDERSLER
Add KONTENJAN smallint

DROP KOMUTU: Tablodan sütun silmemize yarar. Aşağıda TBLDERSLER tablosundan KONTENJAN sütunu silinmiştir.

Alter Table TBLDERSLER
Drop Column KONTENJAN

DML KOMUTLARI

Select, Insert, Update, Delete, Truncate komutlarını içerir ve VERİ ÜZERİNDE DEĞİŞİKLİKLER YAPAR. Yani tablonun içindeki veriler ile alakalı işlemleri yapmak için sorgularda kullanacağımız komutları içerir.

SELECT KOMUTU: Seçme , listeleme => Select * From Table

(* =>All, From => Dan/den)

Select OGRAD,OGRSOYAD, OGRKULUP From TBLOGRENCILER
--Öğrenciler tablosunda ad, soyadi kulüp bilgilerini seçer ve listeler
Select * From TBLOGRENCILER Where OGRKULUP = 'Futbol' 
--Öğrenci tablosunda kulüp 'ü futbol olanların tüm bilgilerini getirir (Where ifadesi şartlı sorgu ifadesidir. Nereden anlamına gelir ve sorguyu şartlı hale getirmektedir.)
Select * From TBLOGRENCILER Where OGRSEHIR = 'İzmir' or OGRKULUP = 'Futbol' 
--Şehri izmir olan veya kulüp'ü futbol olan öğrencilerin tüm bilgilerini getirir

INSERT KOMUTU: Tabloya veri ekleneceği zaman kullanılmaktadır.

Insert Into Table (Column1, Column2, Column3,…) Values (v1, v2, v3,….) Column1 ile v1, Column2 ile v2 ilişkilidir…

Insert Into TBLOGRENCILER(OGRAD, OGRSOYAD, OGRSEHIR) Values('Esin', 'Kıral', 'İstanbul')
--OGRAD, OGRSOYAD, OGRSEHIR olarak 'Esin', 'Kıral', 'İstanbul' verileri tabloya eklendi

DELETE KOMUTU: Tablodan veri silmeye yarar.

Delete From TBLOGRENCILER Where OGRID=11
--Öğrenciler tablosundan id si 11 numara olan öğrenciyi tamamen sildi

NOT: İlişkisel veritabanlarında asla delete kullanılmaz onun yerine tablo aktif ya da pasif hale getirilir.

NOT: Delete komutlarıyla mutlaka where ifadesi kullanılmalı

NOT: İlişkisel tablolarda silinen bir değerin id değeri başka bir değere verilmez ya da silinen tabloda id değeri yeniden başlamaz bunun sebebi ise performans kaynaklıdır(özellikle büyük veriler için düşüncek olursak)

TRUNCATE KOMUTU: Tabloyu (içindeki verileri) tamamen sıfırlar.

Truncate Table TBLDERSLER   
-- Dersler tablosunu tamamen sıfırladı (tabloyu silmedi dikkat et tablunun içindeki verileri sildi.)

UPDATE KOMUTU: Tablo içerisindeki verileri günceller

Update TBLOGRENCILER Set OGRCINSIYET = 'Erkek'   
--- Öğrenciler tablosundaki tüm cinsiyetleri erkek olarak güncelledi
Update TBLOGRENCILER Set OGRCINSIYET = 'Erkek' where OGRID = 2
--- Öğrenciler tablosundaki öğrenci id si 2 olan öğrencinin cinsiyetini erkek olarak güncelledi

NOT: Update komutuyla Set kullanılır

GRUPLANDIRMALAR VE OPERATÖRLER

SUM(TOPLAM): Sum fonksiyonu, belirli bir sütundaki değerlerin toplamını hesaplar. Örneğin, bir sipariş tablosundaki toplam satış miktarını hesaplamak için kullanılabilir.

SELECT SUM(amount) AS total_sales
FROM orders;
--Bu sorgu, "orders" tablosundaki "amount" sütunundaki tüm değerleri toplar.

COUNT(SAYMA): Count fonksiyonu, belirli bir sütundaki değerlerin sayısını verir. Örneğin, bir müşteri tablosundaki kayıtlı müşteri sayısını belirlemek için kullanılabilir.

Select Count(*) As 'Toplam Kayıt' From TBLOGRENCILER Where OGRSEHIR = 'İstanbul'
--- İstanbulda (şehri İstanbul olan) toplam kayıt (öğrenci) sayısını verir

NOT: Select Count(*) As ‘Toplam Kayıt’ From TBLOGRENCILER => burdaki ‘Toplam Kayıt’ Tabloda Result sonucu dönünce sonucun adını oluşturur. Mesela 10 öğrenci varsa toplam kayıt : 10 şeklinde görülür.

SELECT COUNT(*) AS customer_count
FROM customers;
-- Bu sorgu, "customers" tablosundaki tüm satırların sayısını verir, yani kayıtlı müşteri sayısını verir.

MIN(MINIMUM): Min fonksiyonu, belirli bir sütundaki en küçük değeri döndürür. Örneğin, bir ürün tablosundaki en düşük fiyatı bulmak için kullanılabilir.

SELECT MIN(price) AS min_price
FROM products;
--Bu sorgu, "products" tablosundaki "price" sütunundaki en düşük fiyatı döndürür.

MAX(MAXIMUM): Max fonksiyonu, belirli bir sütundaki en büyük değeri döndürür. Örneğin, bir çalışan tablosundaki en yüksek maaşı bulmak için kullanılabilir.

SELECT MAX(salary) AS max_salary
FROM employees;
--Bu sorgu, "employees" tablosundaki "salary" sütunundaki en yüksek maaşı döndürür.

AVG(ORTALAMA): Avg fonksiyonu, belirli bir sütundaki değerlerin ortalamasını hesaplar. Örneğin, bir öğrenci tablosundaki notların ortalamasını bulmak için kullanılabilir.

SELECT AVG(grade) AS average_grade
FROM students;
--Bu sorgu, "students" tablosundaki "grade" sütunundaki notların ortalamasını döndürür.

GRUPLANDIRMA İŞLEMİ (GROUP BY)

SQL’de gruplandırma işlemi, belirli bir sütuna göre verileri gruplamanıza ve bu gruplar üzerinde işlemler yapmanıza olanak tanır. Bu genellikle “GROUP BY” ifadesiyle gerçekleştirilir. Gruplama işlemi genellikle toplu işlemler yapmak veya verileri kategorize etmek için kullanılır.

Varsayalım ki bir “orders” tablonuz var ve bu tabloda siparişlerin müşteri ID’si, sipariş tarihi ve sipariş miktarı gibi bilgiler bulunuyor. Şimdi, her müşterinin ne kadarlık bir alışveriş yaptığını bilmek istiyorsunuz.

SELECT customer_id, SUM(order_amount) AS total_amount
FROM orders
GROUP BY customer_id;

Bu sorgu, “orders” tablosundaki siparişleri müşteri ID’lerine göre gruplar ve her müşteri için toplam sipariş miktarını hesaplar. GROUP BY ifadesi, customer_id sütununa göre gruplama yapılmasını sağlar. SUM(order_amount) ifadesi, her gruptaki order_amount sütunundaki değerlerin toplamını hesaplar.

Sonuçlar şöyle olabilir:

customer_id | total_amount

1 | 500

2 | 300

3 | 750

Bu sonuçlar, her müşterinin toplamda ne kadarlık bir alışveriş yaptığını gösterir. Müşteri ID 1, 500 birimlik alışveriş yapmıştır, müşteri ID 2 ise 300 birimlik alışveriş yapmıştır ve müşteri ID 3, 750 birimlik alışveriş yapmıştır.

Bu örnekte, gruplama işlemi sayesinde her müşterinin toplam alışveriş miktarını kolayca bulabiliriz.

Başka Bir örnek;

Select OGRSEHIR, COUNT(*) From TBLOGRENCILER GROUP BY OGRSEHIR
-- Her bir şehirden kaç tane öğrenci olduğunu bize gösterir
Select COUNT(*) As ' Kalan Öğrenci Sayısı' From TBLNOTLAR GROUP BY DURUM HAVING DURUM = 0
Select COUNT(*) As ' Geçen Öğrenci Sayısı' From TBLNOTLAR GROUP BY DURUM HAVING DURUM = 1
-- Notlar Tablosuna göre Durum ‘ a bakarak (True/False) geçen ve kalan öğrenci sayısını hesaplayan sorgu

HAVING KOMUTU

Gruplandırma işleminde bir şart yazmak istiyorsam bunu where ile yapamam dolayısıyla Group By ifadesiyle Having komutu kullanılır.

Örneğin, bir sorguda belirli bir koşulu sağlayan grupları veya toplam değerleri almak istiyorsak HAVING ifadesini kullanırız. WHERE ifadesi, veri setini filtrelemek için kullanılırken, HAVING ifadesi gruplama sonuçlarını filtrelemek için kullanılır.

Örnek olarak, bir öğrenci tablosunda her bir sınav için notları olan öğrencileri gruplamayı düşünelim ve bu gruplar içindeki ortalama notu 70'in üstünde olanları bulmak isteyelim. Bu durumda GROUP BY ifadesi ile gruplama yaparız ve ardından HAVING ifadesi ile ortalama notun 70'in üstünde olduğu grupları seçeriz.

SELECT student_id, AVG(grade) AS avg_grade
FROM exam_scores
GROUP BY student_id
HAVING AVG(grade) > 70;

Bu sorgu, “exam_scores” tablosundaki her bir öğrenci için notları gruplar ve bu grupların ortalamasını hesaplar. Ardından, HAVING ifadesi ile bu ortalamaları 70'in üstünde olan grupları seçer. Sonuç olarak, her öğrencinin ortalama notunun 70'in üstünde olduğu gruplar listelenir.

Başka Örneklerle de pekiştirelim..

Select OGRSEHIR, COUNT(*) AS 'SAYI' FROM TBLOGRENCILER GROUP BY OGRSEHIR HAVING COUNT(*) = 1
-- öğrenciler tablosundan sehirleri gruplayıp sadece 1 öğrencinin kaydının olduğu şehirleri getirir.
SELECT OGRKULUP, COUNT(*) FROM TBLOGRENCILER GROUP BY OGRKULUP HAVING OGRKULUP = 'Gezi'
-- öğrenciler tablosundaki kulüpler içerişimde kulup’ü Gezi olan öğrencilerin sayısını gösterir

LIKE KOMUTU

LIKE operatörü, SQL sorgularında metin tabanlı verileri filtrelemek için kullanılan bir operatördür. Bu operatör, bir sütundaki değerlerin belirli bir desene veya karakter dizisine uygun olup olmadığını kontrol etmek için kullanılır. Genellikle WHERE ifadesiyle birlikte kullanılır.

LIKE operatörü, genellikle joker karakterlerle (* ve %) birlikte kullanılır. Joker karakterler, belirli bir desenle eşleşen metinleri belirtmek için kullanılır:

% : Herhangi bir karakter dizisiyle eşleşir (0 veya daha fazla karakter).

_ : Herhangi bir tek karakterle eşleşir.

Bir tabloda belirli bir desene veya metin örüntüsüne sahip olan kayıtları bulmak için LIKE operatörü kullanılır. Örneğin, bir müşteri tablosunda “Smith” soyadına sahip müşterileri bulmak için LIKE operatörünü kullanabiliriz.

SELECT * 
FROM customers
WHERE last_name LIKE 'Smith';

Bu sorgu, “customers” tablosundaki “last_name” sütununda “Smith” ile başlayan ve sadece “Smith” olan tüm müşterileri getirir.

Aynı zamanda joker karakterlerle birlikte kullanarak daha geniş aramalar da yapabiliriz. Örneğin, “Smith” ile başlayan herhangi bir soyadına sahip müşteriyi bulmak için % joker karakterini kullanabiliriz:

SELECT * 
FROM customers
WHERE last_name LIKE 'Smith%';
-- Bu sorgu, "Smith" ile başlayan herhangi bir soyadına sahip tüm müşterileri getirir.

Benzer şekilde, belirli bir karakterle başlayan veya belirli bir karakterle biten metinleri bulmak için de joker karakterler kullanılabilir. Örneğin:

LIKE ‘a%’ : “a” harfi ile başlayan metinleri getirir.

LIKE ‘%a’ : “a” harfi ile biten metinleri getirir.

LIKE ‘%[A,B]%’ : İçerisinde A ya da B olan metinleri getirir

LIKE ‘%[A,B]’: A veya B ile biten metinleri getirir

LIKE ‘[A,B]%’: A veya B ile başlayan metinleri getirir

LIKE ‘%[A-D]%’ : İçerisinde A ‘dan başlayıp D’ye kadar olan harfleri içeren metinleri getirir.

Başka örneklerle de pekiştirelim..

Select * From TBLOGRENCILER Where OGRAD Like '%a%' or OGRSOYAD Like '%e%'
--- Ogrenciler tablosunda adında a harfi bulunan veya soyasında e harfi bulunan tüm öğrencileri listeleyen sorgu
Select * From TBLOGRENCILER Where OGRAD Like 'e%' And OGRCINSIYET = 'Kadın'
--- Öğrenciler tablosunda Adı E harfi ile başlayan ve cinsiyeti kadın olan tüm öğrencileri listeleyen sorgu

NOT: Bir de Like ’ın olumsuzu olan Not Like ifadesi vardır. Bu da tam tersi şekilde olmayanları listeler

Select * From TBLOGRENCILER Where OGRAD Not Like '%i%'
--- Adında i harfi olmayan öğrencilerin tüm bilgilerini getirir

DISTINCT KOMUTU

DISTINCT komutu, SQL sorgularında tekrar eden değerlerin filtrelenmesi ve yalnızca benzersiz değerlerin dönmesi için kullanılır.

DISTINCT komutu, SELECT ifadesinden hemen sonra, sorgulanacak sütunlardan önce gelir. Eğer birden fazla sütun seçiliyse, DISTINCT ifadesi bu sütunların kombinasyonlarına göre benzersiz satırları döndürür.

Tek Sütun İçin Distinct Kullanımı: Örnek olarak, “employees” isimli bir tabloda çalışanların departmanları listelendiğinde, bir departmanda birden fazla çalışan olabileceği için departman isimleri tekrar edebilir. Departman isimlerinin benzersiz bir listesini almak için DISTINCT komutu kullanılabilir:

SELECT DISTINCT department  FROM employees;
--- Bu sorgu, "employees" tablosundaki tüm benzersiz "department" değerlerini döndürür

Çoklu Sütun İçin Distinct Kullanımı : Birden fazla sütun seçildiğinde, DISTINCT kombinasyonları benzersiz olan satırları döndürür. Örneğin, çalışanların adı ve soyadı kombinasyonlarının benzersiz listesini almak istiyorsanız:

SELECT DISTINCT first_name, last_name FROM employees;
--- Bu sorgu, "employees" tablosunda benzersiz "first_name" ve "last_name" kombinasyonlarını döndürür.
--- Eğer aynı ad ve soyada sahip birden fazla kayıt varsa, bu kayıtlar sorgu sonucunda yalnızca bir kez gösterilir.
Select Count(Distinct(OGRSEHIR)) From TBLOGRENCILER
--- öğrenciler tablosunda Kaç Adet birbirinden farklı çeşit şehir olduğunu gösterir

ORDER BY KOMUTU

ORDER BY komutu, SQL'de elde edilen sorgu sonuçlarının belirli bir veya birden fazla sütuna göre sıralanmasını sağlar. Bu komut sayesinde, verileri artan (ASC) veya azalan (DESC) sıra ile düzenleyebilirsiniz. Varsayılan sıralama düzeni artandır (ASC).

ORDER BY komutu, SELECT sorgusunun sonuna eklenir ve sıralama yapılacak sütun veya sütunlar belirtilir. Birden fazla sütun belirtildiğinde, veriler öncelikle ilk belirtilen sütuna göre sıralanır. İlk sütundaki veriler eşitse, ikinci sütun için sıralama yapılır ve bu şekilde devam eder.

SELECT ad, soyad, yaş
FROM kişiler
ORDER BY yaş DESC;
--- Bu sorgu, "kişiler" tablosundaki kişileri yaşlarına göre azalan sıralamada listeler. En yaşlı kişi en üstte olacaktır.
SELECT ad, soyad, yaş, şehir
FROM kişiler
ORDER BY şehir ASC, yaş DESC;
--- Bu sorgu, "kişiler" tablosundaki kişileri önce "şehir" sütununa göre alfabetik sıraya koyar. Aynı şehirden olan kişiler, yaşlarına göre azalan sıralamada listelenir.

NOT:

· ORDER BY komutu, metinsel (string) verilerde alfabetik sıralama, sayısal verilerde ise büyüklük/küçüklük sıralaması yapar.

· Birden fazla sıralama kriteri kullanırken, her bir sıralama kriteri için ayrı ASC veya DESC belirtebilirsiniz. Eğer belirtilmezse varsayılan olarak ASC kullanılır.

· Sıralama işlemi, veri setinin okunabilirliğini ve analiz edilebilirliğini artırır. Özellikle büyük veri setlerinde, belirli bir düzende veri görmek, anlam çıkarmayı kolaylaştırır.

Bir başka örnek..

SELECT DISTINCT OGRKULUP FROM TBLOGRENCILER ORDER BY OGRKULUP DESC

TBLOGRENCILER tablosunda bulunan öğrenci kulüplerini benzersiz bir şekilde seçer ve bu kulüp isimlerini alfabetik olarak ters sırada (Z'den A'ya) listeler. DISTINCT yinelenen kulüp isimlerinin filtrelenmesini sağlar, böylece her kulüpten yalnızca bir kez listelenir. ORDER BY OGRKULUP DESC ifadesi ise seçilen benzersiz kulüp isimlerinin azalan alfabetik sırayla sıralanmasını belirtir.

TOP VE PERCENT KOMUTLARI

TOP komutu, sorgu sonucunda döndürülecek kayıtların sayısını sınırlamak için kullanılır. Örneğin, bir sorgunun en üstündeki 10 kaydı almak istiyorsanız, TOP anahtar kelimesini kullanabilirsiniz.

SELECT TOP 10 *
FROM müşteriler
ORDER BY müşteriID;
-- Bu sorgu, müşteriler tablosundan müşteri ID'ye göre sıralanmış ilk 10 kaydı döndürür.

PERCENT anahtar kelimesi, TOP komutu ile birlikte kullanıldığında, sorgu sonuçlarının belirli bir yüzdesini almak için kullanılır. Bu, özellikle toplam kayıt sayısının değişken olduğu durumlarda, sonuç kümesinin belirli bir yüzdesine odaklanmak istediğinizde kullanışlıdır.

SELECT TOP 10 PERCENT *
FROM müşteriler
ORDER BY müşteriID;
--- Bu sorgu, müşteriler tablosundan en küçük müşteri ID'lerine sahip kayıtların ilk %10'unu seçer.

IN / NOT IN KULLANIMI

IN operatörü, belirtilen sütunun değerlerinin, belirli bir liste içinde yer alıp almadığını kontrol eder. Eğer sütun değeri, listelenen değerlerden herhangi birine eşitse, bu kayıt koşulu sağlar.

SELECT *
FROM urunler
WHERE urunKategori IN ('Elektronik', 'Kitap', 'Ev Aletleri');
--- Bu sorgu, urunler tablosundan urunKategori sütunu 'Elektronik', 'Kitap' veya 'Ev Aletleri' olan tüm kayıtları seçer.

NOT IN operatörü, IN operatörünün tam tersi işlevi görür. Yani, belirtilen sütunun değerlerinin, belirli bir liste içinde yer almadığını kontrol eder. Eğer sütun değeri, listelenen değerlerden hiçbirine eşit değilse, bu kayıt koşulu sağlar.

SELECT *
FROM ogrenciler
WHERE ogrenciID NOT IN (1, 2, 5, 7, 11);
--- Bu sorgu, ogrenciler tablosundan ogrenciID'si 1, 2, 5, 7 veya 11 olmayan tüm öğrencileri seçer.

BETWEEN KULLANIMI

BETWEEN operatörü, SQL'de belirli bir aralıkta yer alan değerleri seçmek için kullanılır. Sayısal değerler, tarihler ve metin dizileri üzerinde kullanılabilir ve belirtilen iki değer arasındaki tüm değerleri (bu iki değer dahil) seçmek için kullanışlı bir yoldur

SELECT sütun_adları
FROM tablo_adı
WHERE sütun BETWEEN değer1 AND değer2;
-- Bu yapıda, sütun adı belirtilen değer1 ve değer2 arasında
--(iki değer de dahil olmak üzere) olan kayıtları seçmek için kullanılır.

Örneğin, bir ürünler tablosundan fiyatı 100 ile 200 TL arasında olan ürünleri seçmek isterseniz, şu sorguyu kullanabilirsiniz:

SELECT *
FROM ürünler
WHERE fiyat BETWEEN 100 AND 200;
--- Bu sorgu, fiyat sütunu 100 ile 200 TL arasında olan (100 ve 200 dahil) tüm ürünleri döndürür

BETWEEN operatörü tarihlerle kullanıldığında, belirli bir tarih aralığındaki kayıtları seçmek için oldukça yararlıdır. Örneğin, 2023-01-01 ile 2023-01-31 arasında sipariş verilen siparişleri seçmek isterseniz:

SELECT *
FROM siparişler
WHERE sipariş_tarihi BETWEEN '2023-01-01' AND '2023-01-31';

BETWEEN operatörü metin (string) değerlerle kullanıldığında, alfabetik sıralamaya göre belirli bir aralıktaki kayıtları seçmek için kullanılabilir. Ancak, metin değerlerle kullanımı daha az yaygındır ve belirli durumlar dışında önerilmez, çünkü beklenmeyen sonuçlar ortaya çıkabilir. Bununla birlikte, A ile C harfi arasındaki isimleri seçmek için aşağıdaki gibi bir sorgu kullanılabilir:

SELECT *
FROM çalışanlar
WHERE ad BETWEEN 'A' AND 'C';
-- Bu, ad sütunu 'A' ile başlayan ve 'C' ile (C dahil) başlayan arasındaki tüm isimleri seçer.

NOT BETWEEN: BETWEEN'in tersi NOT BETWEEN operatörüdür ve belirtilen aralığın dışında kalan değerleri seçmek için kullanılır.

SELECT *
FROM ürünler
WHERE fiyat NOT BETWEEN 100 AND 200;
--- Bu sorgu, fiyatı 100'den az veya 200'den fazla olan ürünleri seçer

İlk serimizin sonuna geldik. Pek çok örnekle komutların mantığını kavramayı amaçladım. Umarım Faydalı bir yazı olmuştur. SQL ile alakalı diğer yazılarımda görüşmek üzere …

Keyifli Kodlamalar.. :)

--

--