Структурированный язык запросов 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.