Because tables and SQL operators are really sets and acting on sets, so naturally operations take place on the set unless a subset is specified. Once you completely and totally internalize this SQL is pretty intuitive, although I think that the clause order might be nicer in a different order.
For example, I would like SELECT to be FROM, WHERE, SELECT. UPDATE could be UPDATE, WHERE, SET. But then DELETE would end up inconsistent...
> If I just do 'SELECT *' and execute it, it does not rotate through all the tables.
Because you did not specify what set you wanted to operate in, and the set of sets isn't meaningful because of schematic differences.
> Same with 'SELECT from xyz' if I can not have it empty and return all.
SELECT is asking what pieces of the subsets (rows) you want to display. If you don't ask for any, you don't get any. You are asking for the number of rows in xyz times zero. That's zero. You can write SELECT 1 FROM xyz and get 1 returned for each subset.