Junior
Veritabanlarında örnekler ve birleştirmeler hakkında ne biliyorsun?
sobes.tech yapay zeka
AI'dan gelen yanıt
Örnekler (sorgular SELECT) verileri bir veya daha fazla tablodan çeker. Birleştirmeler (JOIN), ilişkili sütuna göre iki veya daha fazla tablodaki satırları birleştirir.
Birleştirme türleri:
- INNER JOIN: Her iki tabloda da eşleşen satırları döndürür.
- LEFT JOIN (LEFT OUTER JOIN): Sol tablodaki tüm satırları ve sağdaki eşleşen satırları döndürür. Eşleşme yoksa, sağ tablo için
NULLdöner. - RIGHT JOIN (RIGHT OUTER JOIN): Sağ tablodaki tüm satırları ve soldaki eşleşen satırları döndürür. Eşleşme yoksa, sol tablo için
NULLdöner. - FULL JOIN (FULL OUTER JOIN): En az bir tabloda eşleşen satır varsa, tüm satırları döndürür. Eşleşme yoksa, eksik alanlar için
NULLdöner. (Tüm DBMS'lerde desteklenmez, örneğin MySQL UNION kullanır). - CROSS JOIN: Her iki tablodaki satırların kartezian çarpımını döndürür (birinci tablodaki her satır, ikinci tablodaki her satırla birleştirilir).
Sözdizimi örnekleri:
-- INNER JOIN
SELECT *
FROM table1
INNER JOIN table2 ON table1.id = table2.foreign_id;
-- LEFT JOIN
SELECT customer.name, order.order_id
FROM customer
LEFT JOIN order ON customer.id = order.customer_id;
Sorgu anahtar kelimeleri:
SELECT: Çekilecek sütunları belirler.FROM: Tablo(lar)u belirtir.WHERE: Belirtilen koşula göre satırları filtreler.GROUP BY: Aynı değerlere sahip satırları tek bir özet satırda gruplar.HAVING:GROUP BYsonrası grupları filtreler.ORDER BY: Sonucu sıralar.LIMIT / OFFSET: Döndürülecek satır sayısını sınırlar.
Sorgu ve birleştirme optimizasyonu, veritabanı performansı için önemlidir. İndeksler, doğru veri tipi tanımları, SELECT *'den kaçınma (mümkünse), WHERE koşullarının optimize edilmesi kullanılır.
PHP'de, sorgular ve birleştirmelerle çalışmak için PDO veya MySQLi gibi uzantılar kullanılır; bunlar SQL sorgularını çalıştırmak için API sağlar.