SELECT selects that table columns in which the data to be inserted.
FROM denotes the table from which the data is retrieved.
JOIN retrieves data from various tables depending on join conditions.
WHERE clause applies filters to rows to grab the data.
GROUP BY brings the rows together to apply combination functions on each cluster.
HAVING filters group depending on groups defined by GROUP BY clause defined.
ORDER BY defines result set order that is returend.
LIMIT obliges different rows that are returned.