Структурированный язык запросов SQL. Использование псевдонимов

Псевдонимы таблиц.

Для различения одноименных столбцов из разных таблиц используются префиксы в виде имен таблиц. Использование префиксов в виде имен таблиц увеличивает производительность запроса. Одноименные столбцы из разных таблиц можно различать по их псевдонимам. Однако как быть в том случае, когда имена таблиц громоздки или совпадают?

Для разрешения такой ситуации используют псевдонимы таблиц. При этом необходимо следовать следующим правилам:

  • перед именами столбцов рекомендуется указывать псевдонимы таблиц;
  • псевдонимы таблиц действительны только для данной команды SELECT;
  • если псевдоним таблицы создан, перед ссылкой на столбец следует указывать его, а не имя таблицы.

Пример:Вывод наименования клиента, номера региона и названия региона для всех клиентов. Используются псевдонимы столбцов, а для упрощения ссылок на таблицы – псевдонимы таблиц.

Псевдонимы таблиц могут содержать до тридцати символов, но чем они короче, тем лучше. Действие псевдонима таблицы распространяется лишь на текущую команду SELECT. Использование псевдонимов таблиц позволяет уменьшить объем кода SQL, что сокращает расход памяти.

Дополнительные условия поиска.

Помимо соединения в предложении WHERE можно задавать и другие критерии для ограничения получаемых в запросе строк. Поскольку соединение необходимо для подбора соответствий, дополнительное условие добавляется с помощью оператора AND.

Пример:Вывод фамилии, номера отдела и названия отдела сотрудника "Menchu".

LAST_NAME ---------------- DEPT_ID ---------------- NAME ----------------
Menchu Operations

Пример:Вывод фамилии, названия региона и процента комиссионных всех служащих, получающих комиссионные.

LAST_NAME ----------------- NAME --------------------- COMMISSION_PCT ------------------------
Magee North America
Giljum Couth America 12.5
Sedeghi Africa / Middle East
Nguyen Asia
Dumas Europe 17.5
. . .    

Не-эквисоединения.

Не-эквисоединение возникает в случае, если ни один столбец одной таблицы не соответствует точно столбцу другой таблицы. Условие соединения содержит оператор, не являющийся оператором равенства (=).

Пример:Создание не-эквисоединения для вычисления категории служащего по заработной плате. Заработная плата должна быть между любой парой нижнего и верхнего значения диапазона зарплат.

E.LAST_NAME ----------------- E.TITLE -------------- E.SALARY ------------ S.GRADE -----------
SMITH CLERK 800.00
ADAMS CLERK 1,100.00
JAMES CLERK 950.00
WARD SALESMAN 1,250.00
MARTIN SALESMAN 1,250.00
MILLER CLERK 1,300.00
ALLEN SALESMAN 1,600.00
TURNER SALESMAN 1,500.00
JONES MANAGER 2,975.00
BLAKE MANAGER 2,850.00
CLARK MANAGER 2,450.00
SCOTT ANALYST 3,000.00
FORD ANALYST 3,000.00
KING PRESIDENT 5,000.00
14 rows selected

Могут использоваться и другие операторы, (например, <= и >=), но самый простой оператор – это BETWEEN.