PostgreSQL WHERE: Verilerin Filtrelenmesi
PostgreSQL'e dair bir sonraki dersimize hoş geldiniz! Bugün, PostgreSQL sorgularınızda verileri filtrelemek için temel bir bileşen olan WHERE koşulunu ele alacağız. WHERE koşulunu ustaca kullanmak, veritabanınızdan tam olarak ihtiyacınız olan bilgileri almanıza olanak tanır.
WHERE Koşuluna Giriş
PostgreSQL'de WHERE koşulu, bir sorgu tarafından döndürülen kayıtları filtrelemek için kullanılan koşulları tanımlar. Koşullar uygulayarak, sorgu sonuçlarınızı yalnızca kriterlerinize uyan satırları içerecek şekilde daraltabilirsiniz.
Temel Sözdizimi
SELECT column1, column2, ...
FROM table_name
WHERE condition;SELECT: Elde etmek istediğiniz sütunları listeler.FROM: Sorgulamak istediğiniz tabloyu belirtir.WHERE: Satırları filtrelemek için koşulu tanımlar.
PostgreSQL'de Verilerin Filtrelenmesi
Şimdi WHERE koşulunu verimli bir şekilde kullanmanın farklı yollarına derinlemesine bakalım.
1. Karşılaştırma Operatörlerinin Kullanımı
Karşılaştırma operatörleri sütun değerlerini belirtilen bir ifadeyle karşılaştırır.
=: Eşit<>veya!=: Eşit değil<: Küçük>: Büyük<=: Küçük veya eşit>=: Büyük veya eşit
Örnek: Fiyatı 10$'ın üzerinde olan kitapları getirin
SELECT title, price
FROM books
WHERE price > 10;Şema Başlatma İşlemine Göz Atın
2. String Desenleri ile Filtreleme
LIKE Operatörünü Kullanma
LIKE operatörü, wildcard (joker karakter) kullanarak desen eşleştirme yapmanıza olanak sağlar.
%: Sıfır veya daha fazla karakteri temsil eder_: Tek bir karakteri temsil eder
Örnek: Adı 'J' harfi ile başlayan yazarları bulun
SELECT name
FROM authors
WHERE name LIKE 'J%';3. Mantıksal Operatörlerin Kullanılması
Mantıksal operatörler birden fazla koşulu birleştirir.
AND: Tüm koşulların doğru olması gerekirOR: En az bir koşulun doğru olması yeterlidirNOT: Bir koşulun sonucunu tersine çevirir
Örnek: 'Jane Austen' tarafından yazılmış ve fiyatı 10$'dan düşük olan kitapları getirin
SELECT title, author, price
FROM books
WHERE author = 'Jane Austen' AND price < 10;4. BETWEEN Operatörü
BETWEEN operatörü verilen aralıktaki değerleri seçer.
Örnek: Sayfa sayısı 200 ile 400 arasında olan kitapları bulun
SELECT title, pages
FROM books
WHERE pages BETWEEN 200 AND 400;5. IN Operatörü
IN operatörü, bir değerin bir listedeki herhangi bir değerle eşleşip eşleşmediğini kontrol eder.
Örnek: Belirli yazarların kitaplarını getirin
SELECT title, author
FROM books
WHERE author IN ('George Orwell', 'Harper Lee');6. NULL Değerleriyle Başa Çıkma
IS NULL ve IS NOT NULL
Bu ifadeleri, NULL (bilinmeyen) değerleri kontrol etmek için kullanın.
Örnek: Fiyatı belirtilmemiş kitapları bulun
SELECT title
FROM books
WHERE price IS NULL;7. Parantezlerle Koşulları Birleştirme
Parantezler, koşulları gruplayarak mantıksal akışı kontrol eder.
Örnek: Karmaşık bir filtreleme
SELECT title, author, price
FROM books
WHERE (author = 'George Orwell' OR author = 'J.D. Salinger') AND price < 10;8. WHERE Koşulunda Fonksiyonların Kullanımı
PostgreSQL fonksiyonları, WHERE koşulu içinde verileri işlemek için kullanılabilir.
Örnek: Başlık uzunluğu 15 karakterden fazla olan kitapları bulun
SELECT title
FROM books
WHERE LENGTH(title) > 15;9. EXISTS Operatörü
Bir alt sorgunun satır döndürüp döndürmediğini kontrol eder.
Örnek: Fiyatı 8$'dan düşük olan kitapları olan yazarları bulun
SELECT name
FROM authors
WHERE EXISTS (
SELECT 1
FROM books
WHERE books.author = authors.name AND price < 8
);10. WHERE Koşulunda Alt Sorgular
Daha gelişmiş filtreleme yapmak için alt sorguları kullanabilirsiniz.
Örnek: Birden fazla kitabı olan yazarların kitaplarını bulun
SELECT title, author
FROM books
WHERE author IN (
SELECT author
FROM books
GROUP BY author
HAVING COUNT(*) = 1
);Sonuç
WHERE koşulu, PostgreSQL'de belirli koşullara göre verileri filtrelemek için güçlü bir araçtır. Farklı operatörler ve fonksiyonlar kullanarak verilerinizden anlamlı sonuçlar çıkarabilirsiniz.
Anahtar Noktalar:
- Sayısal ve metin verilerini filtrelemek için karşılaştırma operatörlerini kullanın.
- Dize eşleştirmeleri için
LIKEveILIKEoperatörlerini kullanın. - Birden fazla koşulu mantıksal operatörlerle birleştirin.
- Aralık ve liste filtrelemesi için
BETWEENveIN'i kullanın. - Filtreleme yaparken
NULLdeğerlerine dikkat edin.
PostgreSQL WHERE koşulunun farklı senaryolarla kullanımını pratiğe dökmeye devam edin ve becerilerinizi geliştirin.
Schema Initialization
To run the examples, ensure your PostgreSQL database is set up with the following schema:
-- Create the books table
CREATE TABLE books (
title VARCHAR(255),
author VARCHAR(255),
price NUMERIC(10, 2),
pages INTEGER
);
-- Insert sample data into the books table
INSERT INTO books (title, author, price, pages) VALUES
('The Great Gatsby', 'F. Scott Fitzgerald', 10.99, 180),
('To Kill a Mockingbird', 'Harper Lee', 7.99, 281),
('1984', 'George Orwell', 8.99, 328),
('Pride and Prejudice', 'Jane Austen', 6.99, 279),
('The Catcher in the Rye', 'J.D. Salinger', 9.99, 214),
('Moby-Dick', 'Herman Melville', 11.99, 635),
('War and Peace', 'Leo Tolstoy', 12.99, 1225);
-- Create the authors table
CREATE TABLE authors (
name VARCHAR(255)
);
-- Insert sample data into the authors table
INSERT INTO authors (name) VALUES
('F. Scott Fitzgerald'),
('Harper Lee'),
('George Orwell'),
('Jane Austen'),
('J.D. Salinger'),
('Herman Melville'),
('Leo Tolstoy');
-- Create the movies table
CREATE TABLE movies (
title VARCHAR(255)
);
-- Insert sample data into the movies table
INSERT INTO movies (title) VALUES
('The Shawshank Redemption'),
('The Godfather'),
('The Dark Knight'),
('Pulp Fiction'),
('The Lord of the Rings');Farklı sorguları keşfetmek ve PostgreSQL'in WHERE koşulunu daha iyi anlamak için örnekleri inceleyin ve değiştirin. İyi sorgulamalar!