[, expr_k [AS c_alias_k]]]}
FROM table_name_1
[t_alias_1]
[, ... [, table_name_n
[t_alias_n]]]
[WHERE condition]
[GROUP
BY name_of_attr_i[,... [, name_of_attr_j
]] [HAVING condition]]
[{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...]
[ORDER BY name_of_attr_i
[ASC|DESC] [, ... [, name_of_attr_j [ASC|DESC]]]];