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 (ntcolumn_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 koosORDER BY).WITH ROLLUP: valikuline, lisab lõppväärtuste read (MySQL jaoks).
-
[HAVING having_condition]:HAVING: filtreeribGROUP BY-ga loodud gruppe määratud tingimuse alusel. ErinevaltWHERE-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:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE