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сыяктуу, бирок агрегациялык функцияларды колдонууга болот.
-
[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: максималдуу саптардын саны.
-
[FOR UPDATE | LOCK IN SHARE MODE]:- тандалган саптарда блоктоо, транзакциялар ичинде колдонулат, параллелдүү кирүүнү башкаруу үчүн:
FOR UPDATE: тандалган саптарда эксклюзивдүү блоктоо алат, башка транзакциялардын өзгөртүүсүнө тоскоолдук кылат.LOCK IN SHARE MODE: бөлүшүүчү блоктоо алат, башка транзакциялар саптарды окуй алат, бирок өзгөртүүгө тыюу салынат (MySQL үчүн). Башка маалымат базаларында окшош механизмдер колдонулушу мүмкүн (FOR SHARE).
Жалпысынан, SELECT операторунун бөлүктөрү төмөнкү тартипте колдонулат:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE