Middle
Povězte o úplné syntaxi operátoru SELECT v relační databázi.
sobes.tech AI
Odpověď od AI
Operátor SQL SELECT se používá k výběru dat z jednoho nebo více tabulek. Jeho úplná syntaxe zahrnuje mnoho volitelných částí:
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];
Podívejme se na hlavní části:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: klíčové slovo označující výběr dat.ALL: (výchozí) zahrnu všechny nalezené řádky, včetně duplicit.DISTINCT: odstraňuje duplicitní řádky z výsledku.select_expr: výraz, který definuje vybrané sloupce nebo vypočtené hodnoty (napříkladcolumn_name,function(column),column1 + column2,*pro všechny sloupce). Lze používat aliasy sAS.
-
FROM table_references:FROM: klíčové slovo označující zdroj dat.table_references: seznam tabulek, ze kterých jsou data vybírána. Mohou to být jednoduché tabulky, pohledy nebo výsledky spojení (JOIN). Různé typy spojení:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: klíčové slovo pro filtrování řádků na základě podmínky.where_condition: logický výraz využívající srovnávací operátory (=,!=,>,<,>=,<=), logické operátory (AND,OR,NOT), operátory pro rozsahy (BETWEEN), seznamy (IN), vzory (LIKE) a kontrolu na NULL (IS NULL,IS NOT NULL).
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: seskupí řádky se stejnými hodnotami ve specifikovaných sloupcích pro použití agregačních funkcí (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: sloupec, výraz nebo pozice sloupce pro seskupení.ASC | DESC: volitelně, určuje pořadí řazení uvnitř skupiny (obvykle sORDER BY).WITH ROLLUP: volitelně, přidává řádky s celkovými součty (pro MySQL).
-
[HAVING having_condition]:HAVING: filtruje skupiny vytvořenéGROUP BYna základě podmínky. Na rozdíl odWHEREmůže používat agregační funkce.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: řadí výsledkovou množinu.col_name | expr | position: sloupec, výraz nebo pozice pro řazení.ASC: vzestupně (výchozí).DESC: sestupně.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: omezuje počet vrácených řádků. Používá se pro stránkování.offset: posun od začátku výsledku (počet přeskočených řádků).row_count: maximální počet vrácených řádků. Syntaxe se může mírně lišit mezi SGBD (napříkladTOPv SQL Serveru).
-
[FOR UPDATE | LOCK IN SHARE MODE]:- volitelné zámky řádků, používané v transakcích pro řízení paralelního přístupu.
FOR UPDATE: získá exkluzivní zámek na vybrané řádky, brání jejich změně jinými transakcemi.LOCK IN SHARE MODE: získá sdílený zámek, umožňuje jiným transakcím číst řádky, ale nikoliv je měnit (pro MySQL). V jiných SGBD mohou být použity podobné mechanismy (napříkladFOR SHARE).
Pořadí aplikace částí příkazu SELECT při provádění dotazu obvykle je:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE