Sobes.tech
Junior

Verilənlər bazasında nümunələr və birləşmələr haqqında nə bilirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Nümunələr (sorgular SELECT) bir və ya bir neçə cədvəldən məlumat çıxarır. Birləşmələr (JOIN) əlaqəli sütun əsasında iki və ya daha çox cədvəldəki sətirləri birləşdirir.

Birləşmə növləri:

  • INNER JOIN: Hər iki cədvəldə uyğun gələn sətirləri qaytarır.
  • LEFT JOIN (LEFT OUTER JOIN): Sol cədvəldəki bütün sətirləri və sağdakı uyğun gələn sətirləri qaytarır. Uyğun gəlməzsə, sağ cədvəl üçün NULL qaytarılır.
  • RIGHT JOIN (RIGHT OUTER JOIN): Sağ cədvəldəki bütün sətirləri və sol tərəfdəki uyğun gələn sətirləri qaytarır. Uyğun gəlməzsə, sol cədvəl üçün NULL qaytarılır.
  • FULL JOIN (FULL OUTER JOIN): Ən azı birində uyğun gələn sətirlər olan bütün sətirləri qaytarır. Uyğun gəlməzsə, boş sahələr üçün NULL qaytarılır. (Bütün SGBD-lər tərəfindən dəstəklənmir, məsələn, MySQL UNION istifadə edir).
  • CROSS JOIN: Hər iki cədvəlin sətirlərinin kartezian hasilini qaytarır (hər birinci cədvəlin sətiri ikinci cədvəlin hər sətiri ilə birləşdirilir).

Sintaks nümunələri:

-- 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;

Sorğular üçün açar sözlər:

  • SELECT: Çəkiləcək sütunları müəyyən edir.
  • FROM: Cədvəl(lər)i göstərir.
  • WHERE: Verilən şərtə əsasən sətirləri filtrləyir.
  • GROUP BY: Eyni dəyərlərə malik sətirləri bir qrupda toplayır.
  • HAVING: GROUP BY-dən sonra qrupları filtrləyir.
  • ORDER BY: Nəticəni sıralayır.
  • LIMIT / OFFSET: Geri qaytarılan sətir sayını məhdudlaşdırır.

Sorğular və birləşmələrin optimallaşdırılması verilənlər bazasının performansı üçün vacibdir. İndekslər, düzgün məlumat tiplərinin təyin edilməsi, SELECT *-dən qaçınma (mümkün olduqda), WHERE şərtlərinin optimallaşdırılması istifadə olunur.

PHP-də, sorğular və birləşmələrlə işləmək üçün PDO və ya MySQLi kimi uzantılar istifadə olunur, bunlar SQL sorğularını icra etmək üçün API təmin edir.