SQL sorgulama teknikleri arasında en temel araçlardan biri SELECT ifadesidir Bu ifade, veritabanından istenen sütunları seçerek verilerin çekilmesini sağlar WHERE koşulları, sorgu sonuçlarının filtrelenmesi ve daha spesifik hale getirilmesi için kullanılır JOIN ifadeleri ise birden fazla tablodan veri çekmek için kullanılır
INNER JOIN, iki tablodaki eşleşen kayıtları gösterirken, LEFT JOIN sol taraftaki tablonun tüm kayıtlarını ve sağ taraftaki tablodaki eşleşen kayıtları gösterir Bu operatörleri birleştirerek daha spesifik ve kompleks sorgular oluşturabilirsiniz Veritabanı yöneticileri, bu teknikleri kullanarak verilerin çekilmesini, sıralanmasını ve filtrelenmesini sağlayarak veritabanı işlemlerini daha etkili hale getirebilirler

SELECT ifadesi, SQL sorgulama işleminin en temel parçasıdır. Bu ifade, veritabanından belirli verilerin seçilmesini sağlar. SELECT ifadesi, iki temel parçadan oluşur: SELECT kelimesi ve seçilecek olan sütun adları. Örneğin, "SELECT firstname, lastname FROM users" ifadesi, "users" tablosundaki "firstname" ve "lastname" sütunlarındaki tüm verileri getirir.
Ayrıca, SELECT ifadesinin kullanımı ile veritabanından sadece belirli sütunların getirilmesi mümkündür. Bu, veri boyutunu azaltarak performansı artırır.
1. SELECT İfadeleri
SELECT ifadesi, veritabanı yöneticileri için en temel SQL sorgulama tekniklerinden biridir. Bu ifade, veri çekmek için kullanılır ve veritabanından istenen sütun(lar) seçilir. SELECT ifadesinin kullanımı oldukça basittir. Tabloya ait sütun isimlerini yazarak, kolaylıkla verileri görüntüleyebilirsiniz.
SELECT ifadesi, ayrıca WHERE koşulları ve GROUP BY ifadeleriyle birleştirilerek daha spesifik sorgular oluşturmak için kullanılabilir. Ayrıca, veritabanındaki verileri sıralamak için ORDER BY ifadesi de kullanılabilir.
- SELECT * FROM customers;
- SELECT customer_name, city FROM customers WHERE customer_id=1;
- SELECT city, COUNT(*) FROM customers GROUP BY city HAVING COUNT(*) > 1;
Ayrıca, SELECT ifadesi ile birleştirilen JOIN ifadeleriyle birden fazla tablodan veri çekmek de mümkündür. Bu sayede veritabanındaki farklı tablolardaki verileri birleştirerek daha kapsamlı ve spesifik sonuçlar elde edilebilir.
2. WHERE Koşulları
WHERE koşulları, SELECT ifadesini filtrelemek ve daha spesifik hale getirmek için kullanılır. WHERE koşulları, sorgu sonuçlarında belirli kriterleri karşılayan kayıtları gösterir. Örneğin, bir ürünler tablosundan sadece belirli bir ürünün detaylarını listelemek istediğinizde WHERE koşulunu kullanabilirsiniz.
WHERE koşulları, karşılaştırma, mantıksal ve benzeri operatörlerle kullanılabilir. Karşılaştırma operatörleri arasında eşittir (=), büyüktür (>), küçüktür (<) ve benzerleri bulunurken, mantıksal operatörler arasında AND, OR ve NOT yer alır. WHERE koşulları, sorguların daha kesin ve sınırlı sonuçlar vermesini sağlar.
Örneğin, WHERE koşulu kullanarak, bir veritabanındaki müşteriler tablosundaki özellikleri belirli bir kriteri karşılayan müşterileri listelemek mümkündür. Bunun için WHERE cümlesi kullanılır ve cümlede kriter belirtilir. Örneğin, WHERE cümlesi "city='Istanbul'" şeklinde olabilir ve bu şekilde yalnızca Istanbul'da yaşayan müşteriler listelenir.
2.1. AND ve OR Operatörleri
WHERE koşulları, SELECT ifadesini daha spesifik hale getirmek için kullanılır. Bu koşullar, AND ve OR operatörleri ile birleştirilerek sorguların daha da kompleks hale getirilmesini sağlar. AND ve OR operatörleri, WHERE koşullarında kullanılabilecek iki temel operatördür.
AND, iki koşulun da doğru olduğu durumlarda sorguyu geri döndürür. Örneğin, "SELECT * FROM customers WHERE city='New York' AND country='USA'" sorgusu, sadece New York'ta yaşayan ve ülkesi ABD olan müşterileri döndürür.
OR operatörü ise en az bir koşulun doğru olduğu durumlarda sorguyu geri döndürür. Örneğin, "SELECT * FROM customers WHERE city='New York' OR city='London'" sorgusu, New York veya Londra'da yaşayan müşterileri döndürür.
Bu operatörler aynı WHERE ifadesinde de birleştirilebilir. Örneğin, "SELECT * FROM customers WHERE city='New York' OR (city='London' AND country='UK')" sorgusu, New York'ta veya Londra'da yaşayan ve ülkesi İngiltere olan müşterileri döndürür.
3. JOIN İfadeleri
JOIN ifadeleri, veritabanı yöneticilerinin en önemli araçlarından biridir çünkü birden fazla tablodan veri çekmek için kullanılır. Tablolar arasındaki ilişkilere göre JOIN ifadesi kullanarak verileri birleştirebilirsiniz. Bunun yanı sıra, JOIN ifadeleri tablolar arasında bir ilişki olmamasına rağmen veri çekmek için de kullanılabilir.
JOIN ifadelerinin temel kullanımı, tablolar arasındaki ilişkiye bağlıdır. İki tablo arasındaki ilişki, JOIN ifadesinde kullanılan sütunlar ile belirlenir. En sık kullanılan JOIN türleri INNER JOIN, LEFT JOIN, RIGHT JOIN ve FULL OUTER JOIN'dur.
INNER JOIN, iki tablodaki eşleşen kayıtların gösterilmesi için kullanılır. LEFT JOIN, sol taraftaki tablodaki tüm kayıtların ve sağ taraftaki tablodaki eşleşen kayıtların gösterilmesi için kullanılır. RIGHT JOIN, sağ taraftaki tablodaki tüm kayıtların ve sol taraftaki tablodaki eşleşen kayıtların gösterilmesi için kullanılır. FULL OUTER JOIN ise her iki tablodaki tüm kayıtların gösterilmesi için kullanılır.
JOIN ifadeleri, veritabanı yöneticileri için vazgeçilmez bir araçtır ve farklı JOIN türleri ile veritabanı işlemleri daha da hızlı ve pratik hale getirilir.
3.1. INNER JOIN
INNER JOIN, sadece iki tablodaki ortak kayıtları çekmek için kullanılır. Örneğin, bir müşteri tablosu ve bir sipariş tablosu düşünün. İki tabloda da müşteri numaraları var ve bu numaraları kullanarak müşteri tablosundan müşteri adı ve sipariş tablosundan sipariş tarihini alabiliriz.
INNER JOIN kullanımı için, ilk önce JOIN ifadesini kullanmalıyız ve ardından hangi tabloları birleştirmek istediğimizi belirtmeliyiz. Daha sonra, tabloların ilişkilendirileceği sütunları belirtmeliyiz. Örneğin:
SELECT Customers.CustomerName, Orders.OrderDateFROM CustomersINNER JOIN OrdersON Customers.CustomerID = Orders.CustomerID;
Bu sorgu, Customers tablosundan müşteri adını ve Orders tablosundan sipariş tarihini çekiyor. İki tablo da CustomerID sütununa sahip olduğu için, INNER JOIN kullanarak bu sütuna göre tabloları birleştiriyoruz.
3.2. LEFT JOIN
LEFT JOIN, sol tablonun tüm kayıtlarını ve sağ tablodaki eşleşen kayıtları gösterir. Sol tarafın tüm kayıtlarının listelenmesi nedeniyle, sağ tabloda ilgili kayıt olmadığı durumlarda NULL değeri döndürür. Bu durum, iki tablonun ortak olmayan alanları arasında bağlantı kurmak için kullanılabilir. Örneğin, "orders" tablosunda sipariş numaraları ve "customers" tablosunda müşteri bilgileri bulunuyorsa, LEFT JOIN ifadesi "orders" tablosundaki tüm kayıtları, "customers" tablosundaki eşleşen kayıtlarla birlikte listeler.
LEFT JOIN kullanımı aşağıdaki gibi gösterilebilir:
- SELECT orders.order_id, customers.customer_name, orders.order_date
- FROM orders
- LEFT JOIN customers ON orders.customer_id = customers.customer_id;
Bu örnekte, "orders" tablosundan "order_id" ve "order_date" sütunları, "customers" tablosundan "customer_name" sütunu LEFT JOIN kullanılarak seçildi. ON ifadesi, iki tablonun bağlantısını belirtir. Bu örnekte "customer_id" alanı üzerinde bağlantı kuruldu.
3.3. RIGHT JOIN
RIGHT JOIN, sol tablo ile ilişkili tüm kayıtların yanı sıra sağ tabloda eşleşen kayıtları da gösterir. Eğer sol tabloda eşleşen kayıt yoksa, sağ tablonun tüm kayıtları yine de gösterilecektir. RIGHT JOIN sorgusu, özellikle tablolarda eksik verilerin olduğu durumlarda kullanışlı olabilir.
Örnek olarak, bir müşteri tablosu ve siparişler tablosu olduğunu varsayalım. Müşteri tablosunda her müşteriye bir ID atanmış olsun ve siparişler tablosunda her siparişin hangi müşteriye ait olduğunu belirten bir müşteri ID sütunu bulunsun. RIGHT JOIN kullanarak, tüm siparişleri ve müşteri bilgileri eksik olan siparişleri de listeleme imkanı sağlayabiliriz.
Müşteri ID | Müşteri adı | Sipariş ID | Sipariş tarihi |
---|---|---|---|
1 | Ahmet | 101 | 2020/01/01 |
2 | Ali | 102 | 2020/01/02 |
null | null | 103 | 2020/01/03 |
Yukarıdaki tabloda, sol tablodaki müşteri bilgilerine sahip olan siparişler (101 ve 102) ile sağ tabloda eşleşen kayıtlar yer alırken, eksik verilere sahip olan sipariş (103) sağ tablonun tüm kayıtlarının görülmesi sayesinde listelenmiş olur.
3.4. FULL OUTER JOIN
FULL OUTER JOIN, her iki tablodaki tüm kayıtları gösterir ve diğer JOIN türlerinden farklı olarak kayıtların eşleşme durumuna göre hiçbir kayıtla eşleşmeyenleri gösterir. Bu JOIN türü, tablolar arasındaki ilişkileri belirlemek ve önemli verileri elde etmek için kullanılır.
FULL OUTER JOIN kullanımında, SELECT ve FROM ifadelerinde birbirine eşit olarak belirlenen iki tablo bulunur ve WHERE ifadesi olmadan çalıştırılır. Bu işlem sonucunda her iki tablodan gelen tüm kayıtların birleşimi oluşur ve eşleşme durumuna göre NULL değerleri de içerebilir.
Bir örnek vermek gerekirse, bir müşteri listesi tablosu ile bir satış tablosunun birleştirilmesinde FULL OUTER JOIN kullanılabilir. Bu sayede her iki tablodan gelen müşteri ve satış kayıtları birleştirilerek herhangi bir eşleşme durumuna göre değişiklik göstermeksizin tüm kayıtlar gösterilebilir.
4. GROUP BY ve HAVING İfadeleri
GROUP BY ifadesi, veritabanı yöneticilerinin bir sorgu sonucunu belirli bir ölçüte göre grupladığı ve filtrelediği bir SQL sorgulama tekniğidir. GROUP BY ifadesi, SELECT ifadesindeki bir veya daha fazla sütuna göre gruplama yaparak, bu sütunlardaki farklı değerlerin bulunduğu her bir grup için bir satır döndürür.
Örneğin, bir çalışan veritabanında, çalışanların departman ve pozisyonlarına göre maaş ortalamalarını hesaplamak isteyebilirsiniz. Bu senaryoda, GROUP BY ifadesini "departman" ve "pozisyon" sütunlarına uygulayabilirsiniz. Bu, her bir departman ve pozisyon kombinasyonu için bir maaş ortalaması değerleri döndürür. HAVING ifadesi ise, WHERE koşuluna benzer bir şekilde SELECT ifadesinde kullanılır ve gruplanmış sonuçlarda belirli bir şartı karşılayan sütunları filtreler.
Örneğin, önceki örnekte, toplam maaşların ortalama maaşın üzerinde olduğu tüm departmanlar ve pozisyonlarını döndürmek isteyebilirsiniz. Bu durumda, HAVING ifadesini "AVG(maas) > ortalama_maas" şeklinde yazabilirsiniz. Birçok SQL sorgusunda GROUP BY ve HAVING ifadeleri birlikte kullanılır ve sorguların daha spesifik ve verimli hale getirilmesine yardımcı olur.
5. DDL İfadeleri
DDL (Data Definition Language) ifadeleri, veritabanı yöneticilerinin veritabanı şemasını oluşturmak ve yönetmek için kullandığı SQL ifadeleridir. CREATE, ALTER ve DROP gibi temel DDL ifadeleri, veritabanı yöneticileri için en önemli SQL sorgu tekniklerinden biridir.
CREATE ifadesi, veritabanında yeni bir tablo, indeks veya diğer veri nesnelerinin oluşturulması için kullanılır. ALTER ifadesi, var olan bir tabloyu veya indeksi değiştirmek için kullanılırken, DROP ifadesi ise veritabanından var olan bir tablo veya indeksi silmek için kullanılır.
DDL ifadeleri, veritabanı yöneticilerinin veri tabanı yapısını oluşturup yönetmesine izin verir. Veritabanı yapısını güncelleyerek, veri tabanı hizmetlerinin etkili bir şekilde yönetilmesini sağlar. Bu nedenle, DDL ifadeleri veritabanı yönetiminde oldukça önemli bir role sahiptir.
DDL ifadelerini kullanırken, veritabanı yöneticilerinin dikkat etmesi gereken bazı noktalar vardır. Örneğin, CREATE ifadesi, veritabanı tablolarının birincil anahtarlarını ve birincil anahtarların diğer tablolarla ilişkilerini belirlemek için kullanılabilir. ALTER ifadesi, var olan bir tablonun yapısını değiştirebilir ve veri tutarlılığına önem verilmelidir. DROP ifadesi ise, var olan verilerin kalıcı olarak silinmesine neden olabilir.
Sonuç olarak, DDL ifadeleri veritabanı yönetiminde temel tekniklerden biridir ve veritabanı yöneticilerinin veri tabanı yapısını oluşturmak ve yönetmek için kullanmaları gereken önemli araçlardan biridir.