Почему вы используете "AS" при сглаживании таблицы SQL?
Я просто столкнулся с оператором SQL, который использует AS для таблиц псевдонимов, например:
SELECT all, my, stuff
FROM someTableName AS a
INNER JOIN someOtherTableName AS b
ON a.id = b.id
То, что я привык видеть:
SELECT all, my, stuff
FROM someTableName a
INNER JOIN someOtherTableName b
ON a.id = b.id
Я предполагаю, что нет никакой разницы, и это просто синтаксический сахар, но какой из них более распространен/широко распространен? Есть ли какая-то причина предпочесть друг другу?
Отредактировано, чтобы уточнить:
Я ценю все ответы и все сделанные пункты, но вопрос не в том, почему и почему не использовать псевдонимы таблиц. Вопрос состоял исключительно в том, чтобы использовать ключевое слово "AS" для псевдонимов таблицы или оставить его вне.
Ответы
Ответ 1
Это синтаксический сахар, и для его ввода требуется немного больше времени, но некоторые люди считают его более читабельным и понятным. Причина, по которой я его использую, заключается в том, что при чтении большого запроса легче выбрать псевдонимы, ища AS
.
Другая причина, иногда полное имя таблицы длинное и громоздкое для ввода. Слияние с чем-то более коротким иногда может облегчить работу, когда у вас нет привлекательных функций, таких как автозаполнение, или когда вы просто чувствуете ленивость.;)
... И, как указывали некоторые другие передо мной, это может быть полезно при выполнении самосоединений.
Ответ 2
Это вообще предпочтительнее. Подумайте, что произойдет, если вы используете старую "запятую" для соединений, и вы пропустите запятую.
Вместо:
select *
from Orders, Customers;
В итоге получится:
select *
from Orders Customers; --Customers is now the alias for Orders.
И пока это не исправлено, введя "как", вы можете более легко определить, было ли оно предназначено (поскольку я, возможно, действительно хотел, чтобы псевдоним "Заказы как клиенты", в зависимости от того, что еще я делал с ним во время моего запроса).
Ответ 3
Не все базы данных поддерживают оператор AS, насколько я знаю. (Oracle?)
Но по какой-то причине он выглядит более читаемым.
Edit:
Oracle не поддерживает ключевое слово "AS",
ORA-00933: SQL command not properly ended
Ответ 4
Прежде всего, наложение псевдонимов на "а" на самом деле часто считается плохим (мы официально запрещаем его в нашем стандарте кодирования). Причина в том, что в длинном сложном многосетевом запросе люди теряют следы, из которых алиас обозначает ту таблицу.
Сохранение 2 секунд при наборе текста - особенно в эту эпоху intellisenseish IDE - является своеобразным идиотом, когда он взвешен против удобочитаемости/ремонтопригодности.
Основным законным использованием сглаживания является самосоединение
Ответ 5
Полевые псевдонимы предназначены для удобочитаемости вывода. Табличные псевдонимы предназначены для читаемости структуры запроса. Особенно, когда вы имеете дело с длинными именами таблиц и, возможно, с ссылками на разные базы данных.
Если у вас есть дублирующиеся ссылки на таблицы в вашем запросе, вы всегда должны использовать псевдонимы таблиц, чтобы отличать одну таблицу от другой. Например, соединение parent-child может выглядеть примерно так:
SELECT parent.Name AS ParentName,
child.Name AS ChildName
FROM MyTable AS parent
INNER JOIN MyTable as child
ON parent.ID = child.ParentID
Ответ 6
Возможно, используя AS, вы можете быстро увидеть, какие таблицы используются в качестве псевдонима.
Ответ 7
Если у вас есть огромный оператор SQL с различными объединениями, псевдонимы облегчают чтение/понимание, откуда столбцы идут из
Одно из наших приложений не может обрабатывать дефисы в именах столбцов (не спрашивайте меня почему), поэтому псевдонимы - идеальный метод для преобразования COLUMN-NAME
в COLUMN_NAME
Ответ 8
Поскольку значение AS
должно быть явно указано, оно зависит от синтаксиса, поддерживаемого конкретным движком и личных предпочтений (или даже политики).
В SQL Server (все, что я имею в виду), AS
является необязательным в случае после имени отношения в FROM или JOIN. В таких случаях я пропускаю ключевое слово из-за своих предпочтений и что я обнаружил, что он не "уменьшает читаемость" при использовании с последовательной формацией объединения строк.
Однако при использовании производных запросов SQL Server требует ключевое слово AS
, поэтому я старательно включаю его в таких случаях.
Еще раз, в выводах из-за предпочтения, я включаю AS
. Я считаю, что мой выбор ключевого слова здесь объясняется тем, что, в отличие от моего форматирования соединения, часто бывает, что несколько идентификаторов появляются в одной строке.
Итак, для меня в SQL Server:
SELECT a.all AS my, a.stuff -- AS (preference)
FROM someTableName a -- no AS (preference)
INNER JOIN (
SELECT ..
) AS b -- AS (required)
ON a.id = b.id