Middle
Porozprávajte o úplnej syntaxe operátora SELECT v relačnej databáze.
sobes.tech AI
Odpoveď od AI
Operátor SQL SELECT sa používa na výber údajov z jedného alebo viacerých tabuliek. Jeho úplná syntax zahŕňa množstvo voliteľných častí:
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];
Pozrime sa na hlavné časti:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: kľúčové slovo, ktoré označuje výber údajov.ALL: (Predvolené) zahrňuje všetky nájdené riadky, vrátane duplicit.DISTINCT: odstraňuje duplicitné riadky z výsledku.select_expr: výraz, ktorý definuje vybrané stĺpce alebo vypočítané hodnoty (napríklad,column_name,function(column),column1 + column2,*pre všetky stĺpce). Môžu sa používať aliasy sAS.
-
FROM table_references:FROM: kľúčové slovo, ktoré označuje zdroj údajov.table_references: zoznam tabuliek, z ktorých sa údaje vyberajú. Môžu to byť jednoduché tabuľky, pohľady alebo výsledky spojení (JOIN). Rôzne typy spojení:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: kľúčové slovo pre filtrovanie riadkov na základe podmienky.where_condition: logický výraz využívajúci operátory porovnania (=,!=,>,<,>=,<=), logické operátory (AND,OR,NOT), operátory pre rozsahy (BETWEEN), zoznamy (IN), vzory (LIKE) a kontrolu na NULL (IS NULL,IS NOT NULL).
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: zoskupí riadky s rovnakými hodnotami v uvedených stĺpcoch na použitie agregačných funkcií (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: stĺpec, výraz alebo pozícia stĺpca pre zoskupenie.ASC | DESC: voliteľne, určuje poradie zoradenia v rámci skupiny (zvyčajne sORDER BY).WITH ROLLUP: voliteľne, pridáva riadky s celkovými hodnotami (pre MySQL).
-
[HAVING having_condition]:HAVING: filtruje skupiny vytvorenéGROUP BYna základe podmienky. Na rozdiel odWHEREmôže používať agregačné funkcie.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: zoradí výsledkovú množinu.col_name | expr | position: stĺpec, výraz alebo pozícia pre zoradenie.ASC: vzostupne (predvolené).DESC: zostupne.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: obmedzuje počet vrátených riadkov. Používa sa na stránkovanie.offset: posun od začiatku (počet preskočených riadkov).row_count: maximálny počet riadkov na vrátenie. Syntax sa môže mierne líšiť medzi SGBD (napr.TOPv SQL Serveri).
-
[FOR UPDATE | LOCK IN SHARE MODE]:- voliteľné zámky riadkov, používané v transakciách na riadenie paralelného prístupu.
FOR UPDATE: získa exkluzívnu zámku na vybrané riadky, brániac ich zmene inými transakciami.LOCK IN SHARE MODE: získa zdieľanú zámku, umožňujúc iným transakciám čítať riadky, ale nie ich meniť (pre MySQL). V iných SGBD môžu byť použité podobné mechanizmy (napríkladFOR SHARE).
Poradie aplikácie častí operátora SELECT pri vykonávaní dotazu je zvyčajne:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE