Middle
Vertel over de volledige syntax van de SELECT-operator in een relationele database.
sobes.tech AI
Antwoord van AI
De SQL-operator SELECT wordt gebruikt om gegevens uit een of meerdere tabellen te selecteren. De volledige syntax omvat veel optionele delen:
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];
Laten we de belangrijkste delen analyseren:
-
SELECT [ALL | DISTINCT] select_expr, ...:SELECT: sleutelwoord dat aangeeft dat gegevens worden geselecteerd.ALL: (Standaard) omvat alle gevonden rijen, inclusief duplicaten.DISTINCT: verwijdert dubbele rijen uit het resultaat.select_expr: uitdrukking die de geselecteerde kolommen of berekende waarden definieert (bijvoorbeeld,column_name,function(column),column1 + column2,*voor alle kolommen). Aliassen kunnen worden gebruikt metAS.
-
FROM table_references:FROM: sleutelwoord dat de gegevensbron aangeeft.table_references: lijst van tabellen, views of resultaten van joins (JOIN). Types joins:INNER JOIN,LEFT [OUTER] JOIN,RIGHT [OUTER] JOIN,FULL [OUTER] JOIN,CROSS JOIN.
-
[WHERE where_condition]:WHERE: sleutelwoord om rijen te filteren op basis van een voorwaarde.where_condition: logische uitdrukking met vergelijkingsoperatoren (=,!=,>,<,>=,<=), logische operatoren (AND,OR,NOT), operatoren voor bereiken (BETWEEN), lijsten (IN), patronen (LIKE) en NULL-controle (IS NULL,IS NOT NULL).
-
[GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]]:GROUP BY: groepeert rijen met gelijke waarden in de opgegeven kolommen voor het toepassen van aggregatiefuncties (COUNT,SUM,AVG,MIN,MAX).col_name | expr | position: kolom, uitdrukking of positie voor groepering.ASC | DESC: sorteervolgorde binnen de groep (gewoonlijk gebruikt metORDER BY).WITH ROLLUP: optioneel, voegt rijen met totalen toe (voor MySQL).
-
[HAVING having_condition]:HAVING: filtert de doorGROUP BYgemaakte groepen op basis van een voorwaarde. In tegenstelling totWHEREkanHAVINGaggregatiefuncties gebruiken.
-
[ORDER BY {col_name | expr | position} [ASC | DESC], ...]:ORDER BY: sorteert de resultaatset.col_name | expr | position: kolom, uitdrukking of positie voor sortering.ASC: oplopend (standaard).DESC: aflopend.
-
[LIMIT [offset,] row_count | row_count OFFSET offset]:LIMIT: beperkt het aantal geretourneerde rijen.offset: verschuiving vanaf het begin.row_count: maximale aantal rijen.
-
[FOR UPDATE | LOCK IN SHARE MODE]:- optionele vergrendelingen in transacties.
FOR UPDATE: exclusieve vergrendeling.LOCK IN SHARE MODE: gedeelde vergrendeling (voor MySQL).
De toepassing van onderdelen van een SQL-query volgt meestal deze volgorde:
FROMJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMITFOR UPDATE/LOCK IN SHARE MODE