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).ASilə 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ənORDER BYilə birlikdə istifadə olunur).WITH ROLLUP: toplam sətirlər əlavə edir (MySQL üçün).
-
[HAVING having_condition]:HAVING:GROUP BYilə 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:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE