SELECT followed by a list of comma-separated columns or an asterisk (*) to indicate that you want to return all columns.
FROM specifies the table or view where you want query the data.
JOIN gets data from other tables based on certain join conditions.
WHERE filters rows in the result set.
GROUP BY groups rows into groups and applies aggregate functions on each group.
HAVING filters group based on groups defined by GROUP BY clause.
ORDER BY specifies a list of columns for sorting.
LIMIT constrains number of returned rows.