The basic concept is a “range variable”.
Chris Date and Hugh Darwen believe that the term “nickname” and the term “Standard SQL terms” are “inappropriate” and “seriously [distort] the true state of things.”
Hugh Darwen, "SQL: A Comparative Study" :
You may have learned a different term for a range variable, which was used by Codd in its earlier documents, but was not adopted by the SQL standard until 2003. some SQL texts are called an alias, but this does not fit at all, really, because it means that this is the name of the table and therefore designates the table, not the row. The SQL standard uses an equally inappropriate term correlation name (it does not mean correlation, whatever it is), but only for the case when the name is explicit (through AS in the example), and not for the case when the simple table name is doubled as the name of a range variable . In SQL: 2003, a more general case was adopted as a convenient, uniform term to cover.
CJ Date, "SQL and relational theory: how to write accurate SQL code" :
a range variable in a relational model is a variable that has “ranges” above a set of rows in some table (or a set of tuples in some relations, to be more precise). In SQL, such variables are defined by AS specifications in the context of either FROM or JOIN , as in the following example:
SELECT SX.SNO FROM S AS SX WHERE SX.STATUS > 15
SX Here is the range variable, which is located in table S ; in other words, its valid values are rows of table S You can think of a SELECT expression generally evaluated as follows. First, the range variable takes one of its allowed values, for example, a string for the provider SNO = 'S1' . Is the status value in this row greater than 15? If so, the result will be the vendor number 'S1' . Then the range variable goes to another row of table S , say, for provider SNO = 'S2' ; again, if the status value on this line exceeds 15, then the corresponding vendor number is displayed in the result. And so on
SQL requires that SELECT always formulated in terms of range variables; if such variables are absent explicitly indicated, it assumes the existence of implicit ones with the same names as the corresponding tables
Caution: Many SQL texts refer to range variable names (or correlation names) as aliases and describe them as if they were just alternate names for tables they vary. But this characteristic seriously distorts the true state of affairs - indeed, it gives out a serious lack of understanding of what is actually happening, and this account.
Interestingly, LINQ correctly recognizes range variables, for example.
