Sobes.tech
Middle

Əlaqəli verilənlər bazasında SELECT operatorunun tam sintaksisi haqqında danışın.

sobes.tech Süni İntellekt

AI-dan cavab

SQL SELECT operatoru bir və ya bir neçə cədvəldən məlumat seçmək üçün istifadə olunur. Onun tam sintaksisi çoxsaylı könüllü hissələri əhatə edir:

SELECT [ALL | DISTINCT]
    select_expr, select_expr, ...
FROM
    table_references
[WHERE
    where_condition]
[GROUP BY
    {col_name | expr | position}
    [ASC | DESC], ... [WITH ROLLUP]]
[HAVING
    having_condition]
[ORDER BY
    {col_name | expr | position}
    [ASC | DESC], ...]
[LIMIT
    [offset,] row_count | row_count OFFSET offset]
    [FOR UPDATE | LOCK IN SHARE MODE];

Əsas hissələri nəzərdən keçirək:

  • SELECT [ALL | DISTINCT] select_expr, ...:

    • SELECT: məlumat seçimini göstərən açar söz.
    • ALL: (Varsayılan) tapılan bütün sətirləri, o cümlədən təkrarlananları daxil edir.
    • DISTINCT: nəticədən təkrarlanan sətirləri çıxarır.
    • select_expr: seçilən sütunları və ya hesablanan dəyərləri ifadə edir (məsələn, column_name, function(column), column1 + column2, * bütün sütunlar üçün). AS ilə aliaslar istifadə oluna bilər.
  • FROM table_references:

    • FROM: məlumat mənbəyini göstərən açar söz.
    • table_references: məlumatların seçildiyi cədvəllərin siyahısı. Sadə cədvəllər, görünüşlər və ya birləşmələrin nəticələri istifadə oluna bilər. Müxtəlif birləşmə növləri: INNER JOIN, LEFT [OUTER] JOIN, RIGHT [OUTER] JOIN, FULL [OUTER] JOIN, CROSS JOIN.
  • [WHERE where_condition]:

    • WHERE: sətirlərin filtrələnməsi üçün açar söz.
    • where_condition: müqayisə operatorları (=, !=, >, <, >=, <=), məntiqi operatorlar (AND, OR, NOT), diapazon operatorları (BETWEEN), siyahılar (IN), şablonlar (LIKE) və NULL yoxlaması (IS NULL, IS NOT NULL).
  • [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:

    • GROUP BY: sətirləri göstərilən sütunlarda qruplaşdırır və agregat funksiyalarını tətbiq edir (COUNT, SUM, AVG, MIN, MAX).
    • col_name | expr | position: qruplaşdırma üçün sütun, ifadə və ya sütun mövqeyi.
    • ASC | DESC: sıralama qaydasını təyin edir (adətən ORDER BY ilə birlikdə istifadə olunur).
    • WITH ROLLUP: toplam sətirlər əlavə edir (MySQL üçün).
  • [HAVING having_condition]:

    • HAVING: GROUP BY ilə yaradılan qrupları filtr edir və şərtdə agregat funksiyalarını istifadə edə bilər.
  • [ORDER BY {col_name | expr | position} [ASC | DESC], ...]:

    • ORDER BY: nəticə dəstini sıralayır.
    • col_name | expr | position: sıralama üçün sütun, ifadə və ya mövqe.
    • ASC: artan sıralama (varsayılan).
    • DESC: azalan sıralama.
  • [LIMIT [offset,] row_count | row_count OFFSET offset]:

    • LIMIT: qaytarılan sətirlərin sayını məhdudlaşdırır. Səhifələmə üçün istifadə oluna bilər.
    • offset: nəticə dəstindən başlanğıcdan keçmə (atlanan sətir sayı).
    • row_count: qaytarılan maksimum sətir sayı. Sintaksis müxtəlif SGBD-lərdə fərqli ola bilər (məsələn, SQL Server-də TOP).
  • [FOR UPDATE | LOCK IN SHARE MODE]:

    • İstəyə bağlı sətir kilidləri, tranzaksiyalarda çoxsaylı girişin idarə olunması üçün.
    • FOR UPDATE: seçilmiş sətirlərə eksklüziv kilid qoyur, digər tranzaksiyaların dəyişməsini əngəlləyir.
    • LOCK IN SHARE MODE: paylaşılan kilid qoyur, digər tranzaksiyaların sətirləri oxumasına icazə verir, lakin dəyişməsinə yox (MySQL üçün). Digər SGBD-lərdə oxşar mexanizmlər istifadə oluna bilər (məsələn, FOR SHARE).

SELECT operatorunun hissələrinin tətbiq olunma ardıcıllığı adətən aşağıdakı kimidir:

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. LIMIT
  10. FOR UPDATE / LOCK IN SHARE MODE