I can't seem to figure out what's the point of having default implicit parameters in SQL (please see the example below), given that SQL is a declarative language. Isn't forcing the parameters a way of assuring more readability? After all, code is meant to be written once and read by humans many times (or at least once).
For example, in PostgreSQL we have the following syntax:
T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression
The following query:
SELECT *
FROM T1 JOIN T2
ON true;
implies an inner join meaning it is equal to the following query:
SELECT *
FROM T1 INNER JOIN T2
ON true;
can someone please explain to me the reason behind the idea of default and optional parameters (in our example the implicit type of join) in SQL?