Sobes.tech
Middle

Rääkige relatsioonandmebaasis SELECT-operaatori täielikust süntaksist.

sobes.tech AI

Vastus AI-lt

SQL SELECT operaatorit kasutatakse andmete valimiseks ühest või mitmest tabelist. Selle täielik süntaks hõlmab mitmeid valikulisi osi:

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];

Peamised osad:

  • SELECT [ALL | DISTINCT] select_expr, ...:

    • SELECT: sõna, mis näitab andmete valimist.
    • ALL: (vaikimisi) hõlmab kõiki leitud ridu, kaasa arvatud duplikaadid.
    • DISTINCT: eemaldab duplikaadrid tulemusest.
    • select_expr: avaldis, mis määrab valitud veerud või arvutatud väärtused (nt column_name, function(column), column1 + column2, * kõigi veergude valimiseks). Võib kasutada hüüdnimesid (AS).
  • FROM table_references:

    • FROM: sõna, mis näitab andmeallikat.
    • table_references: tabelite nimekiri, millest andmeid valitakse. Võivad olla lihtsad tabelid, vaated või ühendused (JOIN). Erinevat tüüpi ühendused: INNER JOIN, LEFT [OUTER] JOIN, RIGHT [OUTER] JOIN, FULL [OUTER] JOIN, CROSS JOIN.
  • [WHERE where_condition]:

    • WHERE: sõna, mis kasutatakse ridade filtreerimiseks määratud tingimuse alusel.
    • where_condition: loogiline avaldis, mis kasutab võrdlusoperaatoreid (=, !=, >, <, >=, <=), loogilisi operaatorid (AND, OR, NOT), vahemikuoperaatoreid (BETWEEN), loendeid (IN), mustreid (LIKE) ja NULL-i kontrolli (IS NULL, IS NOT NULL).
  • [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:

    • GROUP BY: ridade grupeerimine sama väärtusega määratud veergudes, et rakendada agregaatfunktsioone (COUNT, SUM, AVG, MIN, MAX).
    • col_name | expr | position: veerg, avaldis või veeru positsioon grupeerimiseks.
    • ASC | DESC: valikuline, määrab sorteerimise järjekorra grupis (tavaliselt koos ORDER BY).
    • WITH ROLLUP: valikuline, lisab lõppväärtuste read (MySQL jaoks).
  • [HAVING having_condition]:

    • HAVING: filtreerib GROUP BY-ga loodud gruppe määratud tingimuse alusel. Erinevalt WHERE-st, saab kasutada agregaatfunktsioone.
  • [ORDER BY {col_name | expr | position} [ASC | DESC], ...]:

    • ORDER BY: sorteerib tulemuste read.
    • col_name | expr | position: veerg, avaldis või veeru positsioon sorteerimiseks.
    • ASC: kasvavalt (vaikimisi):
    • DESC: kahanevalt.
  • [LIMIT [offset,] row_count | row_count OFFSET offset]:

    • LIMIT: piirab tagastatavate ridade arvu. Võib kasutada leheküljestamiseks.
    • offset: nihutamine algusest, vahelejätmine teatud arv ridu.
    • row_count: maksimaalne ridade arv.
  • [FOR UPDATE | LOCK IN SHARE MODE]:

    • valikuline ridade lukustamine, kasutatakse transaktsioonides paralleelse juurdepääsu juhtimiseks:
    • FOR UPDATE: saab eksklusiivse lukustuse valitud ridadele, takistades nende muutmist teistes transaktsioonides.
    • LOCK IN SHARE MODE: saab jagatud lukustuse, mis võimaldab teistel transaktsioonidel ridasid lugeda, kuid mitte muuta (MySQL jaoks). Teistes andmebaasides võivad olla sarnased mehhanismid (FOR SHARE).

Üldiselt rakendatakse SELECT osad järgnevas järjekorras:

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. LIMIT
  10. FOR UPDATE / LOCK IN SHARE MODE