Middle
Parla della sintassi completa dell'operatore SELECT in un database relazionale.
sobes.tech AI
Risposta dell'AI
L'operatore SQL SELECT viene utilizzato per selezionare dati da una o più tabelle. La sua sintassi completa include molte parti opzionali:
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];
Analizziamo le parti principali:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: Parola chiave che indica la selezione dei dati.ALL: (Per default) Include tutte le righe trovate, compresi i duplicati.DISTINCT: Rimuove le righe duplicate dal risultato.select_expr: Espressione che definisce le colonne selezionate o valori calcolati (ad esempio,column_name,function(column),column1 + column2,*per tutte le colonne). È possibile usare alias conAS.
-
FROM table_references:FROM: Parola chiave che indica la fonte dei dati.table_references: Elenco di tabelle, viste o risultati di join (JOIN). Tipi di join:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: Parola chiave per filtrare le righe in base a una condizione.where_condition: Espressione logica con operatori di confronto (=,!=,>,<,>=,<=), operatori logici (AND,OR,NOT), operatori per intervalli (BETWEEN), liste (IN), pattern (LIKE) e controllo NULL (IS NULL,IS NOT NULL).
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: Raggruppa le righe con valori uguali nelle colonne specificate per applicare funzioni di aggregazione (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: Colonna, espressione o posizione per il raggruppamento.ASC | DESC: Ordine di ordinamento all'interno del gruppo (solitamente usato conORDER BY).WITH ROLLUP: Opzionale, aggiunge righe con totali (per MySQL).
-
[HAVING having_condition]:HAVING: Filtra i gruppi creati daGROUP BYin base a una condizione. A differenza diWHERE,HAVINGpuò usare funzioni di aggregazione.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: Ordina l'insieme di righe risultanti.col_name | expr | position: Colonna, espressione o posizione per l'ordinamento.ASC: Crescente (predefinito).DESC: Decrescente.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: Limita il numero di righe restituite.offset: Spostamento dall'inizio.row_count: Numero massimo di righe.
-
[FOR UPDATE | LOCK IN SHARE MODE]:- Blocchi opzionali nelle transazioni.
FOR UPDATE: Blocca in modo esclusivo.LOCK IN SHARE MODE: Blocca condivisa (MySQL).
L'ordine di applicazione in una query SQL è generalmente:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE