3 ms·
It's not about flipping. The two concepts are actually commutative. You could in theory create syntax that looks like this: FROMCLAUSE * SELECTCLAUSE * WHERE
by nendroid 6y ago
It's not about flipping. The two concepts are actually commutative. You could in theory create syntax that looks like this:
FROMCLAUSE * SELECTCLAUSE * WHERECLAUSE = SQLEXPRESSION
SELECTCLAUSE * WHERECLAUSE * FROMCLAUSE = SQLEXPRESSION
...
The issue is that not only does SQL syntax force an artificial order on these clauses, but that these clauses Cannot be decomposed to be used elsewhere. I cannot reuse a WHERECLAUSE or a SELECTCLAUSE in another expression.
- nendroid 6y agoSome detail here. What goes on in relational algebra is that the FROMCLAUSE is encoded into an axiomatic primitive called a RELATION and you get stuff like this: SELECTCLAUSE(WHERECLAUSE(relation)) = relation WHERECLAUSE(SELECTCLAUSE(relation)) = relation Basically every operation in relational algebra produces a primitive of type RELATION which allows for all operations to be composed like unix pipes. My example in the previous post has a flaw where it's not clear what: SELECTCLAUSE * WHERECLAUSE = ???? will output because there's no meaning to a SQLEXPRESSION without a FROMCLAUSE. But hopefully it illustrates the point. I'm putting this here for anyone who's nitpicky about the details. The relational algebra syntax is much more elegant.