SQL SELECT: Difference between revisions
(→SELECT) |
|||
Line 15: | Line 15: | ||
Almost every query will include at least three of these clauses (<code>[[#SELECT|SELECT]]</code>, <code>[[#FROM|FROM]]</code> and <code>[[#WHERE|WHERE]]</code>). | Almost every query will include at least three of these clauses (<code>[[#SELECT|SELECT]]</code>, <code>[[#FROM|FROM]]</code> and <code>[[#WHERE|WHERE]]</code>). | ||
Once submitted to the server, the server verifies the syntax and passes the query to the query optimizer to be executed. The optimizer look at such things as the order in which to join tables, what indexes are available, etc. and the picks an execution plan. | |||
The execution consists in selecting all rows, possibly across multiple tables, then filtering and discarding the rows that do not match the filter conditions specified in the <code>[[SQL_WHERE#Overview|WHERE]]</code> clause, if present. | |||
Upon execution, an SQL query returns a [[SQL#Result_Set|result set]], which is just another table containing rows and columns. | |||
=Example= | =Example= |
Revision as of 00:32, 23 May 2024
Internal
Overview
A query consists in at least one (SELECT
) and at most six categories of clauses:
SELECT [one or more things] FROM [one or more places] WHERE [one or more conditions apply] GROUP BY [...] HAVING [...] ORDER BY [...];
Almost every query will include at least three of these clauses (SELECT
, FROM
and WHERE
).
Once submitted to the server, the server verifies the syntax and passes the query to the query optimizer to be executed. The optimizer look at such things as the order in which to join tables, what indexes are available, etc. and the picks an execution plan.
The execution consists in selecting all rows, possibly across multiple tables, then filtering and discarding the rows that do not match the filter conditions specified in the WHERE
clause, if present.
Upon execution, an SQL query returns a result set, which is just another table containing rows and columns.
Example
SELECT id, name FROM person WHERE id = 1;
The following query:
SELECT;
is valid, it returns one empty row.
Clauses
SELECT
SELECT [one or more things] ...
SELECT
specifies which columns from the FROM
sources need to be retrieved.
FROM
FROM [one or more places]
The "places" we select from can be:
- permanent
- derived
- temporary
- virtual(view)
Table alias.