Вы можете установить псевдонимы таблиц в SQL, вводя идентификатор сразу после имени таблицы.
SELECT * FROM table t1;
Вы даже можете использовать ключевое слово, AS
чтобы указать псевдоним.
SELECT * FROM table AS t1;
Какая разница между ними, если таковые имеются?
Я вижу, что старые администраторы баз данных, как правило, пишут заявления без AS
, но большинство новых руководств используют его.
Обновление: я знаю, каково назначение псевдонимов таблиц и столбцов. Мне любопытно, в чем причина наличия отдельного ключевого слова для установки псевдонимов, хотя оно работает и без него.
CREATE PROC Test @Param1 INT AS SELECT @Param1
Ответы:
Там нет никакой разницы между обоими утверждениями выше. AS - это просто более явный способ упоминания псевдонима.
источник
Каждый, кто ответил до меня, прав. Вы используете его как псевдоним для таблицы, если у вас есть длинные запросы или запросы, которые имеют соединения. Вот пара примеров.
Пример 1
Пример 2
Пример 3 Рекомендуется использовать ключевое слово AS, и очень рекомендуется, но можно выполнить один и тот же запрос без одного (а я часто это делаю).
Как вы можете сказать, в последнем примере я пропустил ключевое слово AS. И это можно использовать как псевдоним.
Пример 4
Выход из примера 4
источник
Если вы не уверены, какой синтаксис выбрать, особенно когда кажется, что разделить выбор не так уж и много, обратитесь к книге по эвристике. Насколько я знаю, единственная книга по эвристике для SQL - это «Стиль программирования Джо Селко для SQL»:
Таким образом, если ваша команда не любит съезд, вы можете обвинить Челко - я знаю, что мне нравится;)
ОБНОВЛЕНИЕ 1: IIRC в течение длительного времени, Oracle не поддерживал
AS
ключевое слово (имя предшествующей корреляции), которое может объяснить, почему некоторые старые таймеры не используют его как обычно.ОБНОВЛЕНИЕ 2: термин «имя корреляции», хотя и используется стандартом SQL, неуместен. Основополагающим понятием является понятие « переменной диапазона ».
ОБНОВЛЕНИЕ 3: Я просто перечитал то, что написал Celko, и он не прав: таблица не переименовывается! Теперь я думаю:
источник
AS
Ключевое слово, чтобы дать ALIAS имя таблицы базы данных или столбец таблицы. В вашем примере оба утверждения верны, но существуют обстоятельства, когда требуется предложение AS (хотя самAS
оператор является необязательным), напримерВ этом случае в
Employee
таблице естьsalary
столбец, и мы просто хотим получить двойную зарплату с новым именемDouble Salary
.Извините, если мое объяснение неэффективно.
Обновление на основе вашего комментария, вы правы, мое предыдущее утверждение было недействительным. Единственная причина, по которой я могу придумать, состоит в том, что это
AS
предложение давно существует в мире SQL, которое было включено в современные RDMS для обратной совместимости.источник
AS
не требуется или нужно даже в этом случае. ПопробуйSELECT 1 + 1 "result"
.Использование становится более очевидным, если вы не используете «SELECT *» (что является плохой привычкой, из которой следует отказаться):
источник
Это формальный способ задания имени корреляции для сущности, чтобы вы могли легко обратиться к нему в другой части запроса.
источник
AS
В этом случае является необязательным ключевым словом определено в ANSI SQL 92 , чтобы определить<<correlation name>
, широко известный как псевдоним для таблицы.Лучше не использовать
AS
ключевое слово для псевдонимов таблиц, так как оно не поддерживается рядом широко используемых баз данных.источник
as
ключевое слово для псевдонимов таблиц.На заре SQL он был выбран в качестве решения проблемы того, как обращаться с дублирующимися именами столбцов (см. Примечание ниже).
Чтобы заимствовать запрос из другого ответа:
Столбец
ProductID
(и, возможно, другие) является общим для обеих таблиц, и поскольку синтаксис условия соединения требует ссылки на обе таблицы, «точечная квалификация» обеспечивает устранение неоднозначности.Конечно, лучшим решением было бы никогда не допускать дублирования имен столбцов! К счастью, если вы используете более новый
NATURAL JOIN
синтаксис, необходимость в переменных диапазонаP
иO
уходит:Но почему
AS
ключевое слово необязательно? Моя личная беседа с членом комитета по стандартизации SQL (Джо Селко или Хью Дарвеном) состояла в том, что их воспоминания заключались в том, что на момент определения стандарта продукт одного поставщика (Microsoft?) Требовал его включения, а другого - поставщика. продукт (Oracle?) требовал его упущения, поэтому выбранный компромисс состоял в том, чтобы сделать его необязательным. Я не цитирую это, вы либо верите мне, либо нет!В первые дни реляционной модели перекрестное произведение (или тэта-соединение или равное соединение) отношений, заголовки которых не являются непересекающимися, создавало отношение с двумя атрибутами с одинаковым именем; Решением этой проблемы Кодд в своем реляционном исчислении было использование точечной квалификации, которая впоследствии была эмулирована в SQL (позже стало понятно, что так называемое естественное соединение было примитивным без потерь; то есть естественное соединение может заменить все тета-объединения и даже перекрестный продукт.)
Источник: Business System 12, примечания к слайдам презентации, представленной Хью Дарвеном на семинаре для разработчиков TTM, Университет Нортумбрии, 2-3 июня 2011 года.
источник
AS
ключевое слово является необязательным (очевидно, без цитирования!). Хью ушел на пенсию несколько лет назад. Я думаю, что Celko мог бы все еще быть активным - его воспоминания добавят вес? Доказательств и следов бумаги просто не существует :(Например, если вы разрабатываете запрос с использованием редактора запросов в SQL Server 2012, вы получите следующее:
Однако удаление AS не имеет никакого значения, как в следующем:
В этом случае использование AS является излишним, но во многих других местах это необходимо.
источник