Middle
Дар бораи синтаксисии пурраи оператори SELECT дар базаи додаҳои муносиб гап занед.
sobes.tech AI
Ҷавоб аз AI
Ҳамагон оператори SQL SELECT барои интихоби маълумот аз як ё бештар аз як ҷадвал истифода мешавад. Синтаксиси пурраи он бисёр қисмҳои ихтиёриро дар бар мегирад:
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];
Биёед қисмҳои асосиро баррасӣ кунем:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: калимаи калидӣ, ки нишон медиҳад, ки маълумот интихоб мешавад.ALL: (Таърифӣ) ҳамаи сатрҳоро, аз ҷумла такрорҳоро дар бар мегирад.DISTINCT: такрорҳоро аз натиҷа хориҷ мекунад.select_expr: израз, ки сутунҳои интихобшуда ё арзишҳои ҳисобшуда (масалан,column_name,function(column),column1 + column2,*барои ҳамаи сутунҳо) муайян мекунад. Мумкин аст, ки ба онҳо номи мустаҳкам (AS) гузошта шавад.
-
FROM table_references:FROM: калимаи калидӣ, ки манбаи маълумотро нишон медиҳад.table_references: рӯйхати ҷадвалҳо, ки аз онҳо маълумот интихоб мешавад. Мумкин аст, ки ҷадвалҳои оддӣ, намоишҳо ё натиҷаҳои пайвастшавӣ (JOIN) бошанд. Навъҳои гуногуни пайвастшавӣ:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: калимаи калидӣ барои филтр кардани сатрҳо бар асоси шарти муайян.where_condition: изрази мантиқӣ, ки операторҳои муқоиса (=,!=,>,<,>=,<=), операторҳои мантиқӣ (AND,OR,NOT), операторҳои диапазон (BETWEEN), рӯйхатҳо (IN), намунаҳо (LIKE) ва санҷишҳо барои NULL (IS NULL,IS NOT NULL) истифода мебаранд.
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: сатрҳоро бо арзишҳои якхела дар сутунҳои муайян гурӯҳбандӣ мекунад барои истифодаи функсияҳои агрегатӣ (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: сутун, израз ё ҷойгиршавии сутун барои гурӯҳбандӣ.ASC | DESC: ба таври ихтиёрӣ, тартиби сортировка дар дохили гурӯҳ (одатан боORDER BY).WITH ROLLUP: ба таври ихтиёрӣ, сатри ҷамъбонӣ илова мекунад (барои MySQL).
-
[HAVING having_condition]:HAVING: гурӯҳҳоро бо шарти муайян филтр мекунад, ки азGROUP BYгирифта шудаанд. Баръакс азWHERE,HAVINGметавонад функсияҳои агрегатиро истифода барад.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: натиҷаҳоро ба тартиб меорад.col_name | expr | position: сутун, израз ё ҷойгиршавии сутун барои тартиб.ASC: ба рӯйхати афзоишӣ (тавсияшуда).DESC: ба рӯйхати коҳишӣ.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: шумораи сатрҳоро маҳдуд мекунад. Барои саҳифасозӣ истифода мешавад.offset: ҷойгиршавӣ аз оғоз (сониян, сатрҳои гузаронидашуда).row_count: шумораи максималии сатрҳо барои баргардондан. Синтаксис метавонад каме фарқ кунад байни SGBD-ҳо (масалан,TOPдар SQL Server).
-
[FOR UPDATE | LOCK IN SHARE MODE]:- бастани сатрҳо, ки дар транзаксияҳо барои назорати дастрасии ҳамзамон истифода мешаванд.
FOR UPDATE: бастани эксклюзивро ба сатрҳо мегирад, ки дигар транзаксияҳо онҳоро тағир дода наметавонанд.LOCK IN SHARE MODE: бастани тақсимшуда мегирад, ки ба дигар транзаксияҳо иҷозат медиҳад, ки сатрҳоро хонанд, аммо на тағир диҳанд (барои MySQL). Дар дигар SGBD-ҳо метавон механизмҳои монанд истифода шаванд (масалан,FOR SHARE).
Тартиби татбиқи қисмҳои оператори SELECT дар иҷрои як савол одатан чунин аст:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE