복붙노트

[SQL] SQL 테이블 별명을 때 왜 "있는 그대로"를 사용해야합니까?

SQL

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

나는 거기에 아무런 차이가 없다하고 그냥 문법 설탕,하지만이 중 어느 것이 더 널리 / 넓은 확산을입니다 있으리라 믿고있어? 다른 이상을 선호 할 이유가 있습니까?

명확하게 편집 :

나는 모든했으나, 답변 및 모든 점을 주셔서 감사합니다,하지만 문제는되지 왜 또는 왜 사용하지 않는 테이블 별칭이었다. 문제는 테이블 별명에 대해 "있는 그대로"키워드를 사용하거나 그것을 밖으로 떠날 순수했다.

해결법

  1. ==============================

    1.그것은 문법 설탕 그리고 그것은 입력 조금 더 걸리지 만 어떤 사람들은 더 읽기 분명 찾을 수 있습니다. 내가 그것을 사용하는 이유는 큰 쿼리를 읽을 때, AS의를 찾아 별칭을 골라 쉽게 것입니다.

    그것은 문법 설탕 그리고 그것은 입력 조금 더 걸리지 만 어떤 사람들은 더 읽기 분명 찾을 수 있습니다. 내가 그것을 사용하는 이유는 큰 쿼리를 읽을 때, AS의를 찾아 별칭을 골라 쉽게 것입니다.

    또 다른 이유는, 때때로 전체 테이블 이름은 길고 복잡 입력하는 것입니다. 아니면 그냥 게으른 느낌이있어 때를 위해 - 짧은 뭔가 앨리어싱 때로는 당신이 멋진 자동 완성 같은 기능이없는 경우에 대한 일을 더 쉽게 만들 수 있습니다. ;)

    몇몇 다른 사람이 내 앞에 지적으로 할 때 ... 그리고, 그것은 유용 할 수 있습니다 자체 조인.

  2. ==============================

    2.그것은 일반적으로 선호합니다. 당신이 오래된 '쉼표 표기법'을 사용하여 조인하는 경우 발생하는 고려, 당신은 쉼표를 그리워.

    그것은 일반적으로 선호합니다. 당신이 오래된 '쉼표 표기법'을 사용하여 조인하는 경우 발생하는 고려, 당신은 쉼표를 그리워.

    대신에:

    select *
    from Orders, Customers;
    

    당신은 끝낼 :

    select *
    from Orders Customers; --Customers is now the alias for Orders.
    

    이 '로'도입에 의해 해결되지 않은 동안 (실제로 내 쿼리 중에를하고 있던 다른 내용에 따라, 고객으로 별명 주문하고 싶었어요 수 있기 때문에)이 의도하는 경우, 당신은 더 쉽게 알 수 있습니다.

  3. ==============================

    3.모든 데이터베이스는 지금까지 내가 알고있는 AS 문을 지원합니다. (신탁?) 그러나 몇 가지 이유가 더 읽기 보인다.

    모든 데이터베이스는 지금까지 내가 알고있는 AS 문을 지원합니다. (신탁?) 그러나 몇 가지 이유가 더 읽기 보인다.

    편집하다: 오라클은 키워드를 통해 여기에 'AS'를 지원하지 않습니다;

    ORA-00933: SQL command not properly ended
    
  4. ==============================

    4.우선, 함께 앨리어싱 "A"실제로 종종 나쁜 일을 (우리가 공식적으로 우리의 코딩 표준에 금지)로 간주됩니다. 그 이유는 길고 복잡한 다중 테이블에 쿼리 사람들이 별명이있는 테이블에 대해 의미있는 트랙을 잃을 것입니다.

    우선, 함께 앨리어싱 "A"실제로 종종 나쁜 일을 (우리가 공식적으로 우리의 코딩 표준에 금지)로 간주됩니다. 그 이유는 길고 복잡한 다중 테이블에 쿼리 사람들이 별명이있는 테이블에 대해 의미있는 트랙을 잃을 것입니다.

    특히 intellisenseish의 IDE의 시대에 - - 입력에 2 초 저장하면 가독성 / 유지 보수에 대해 무게 때 바보의 종류이다.

    앨리어싱의 주요 합법적 인 사용은 자체 조인하는 것입니다

  5. ==============================

    5.필드 별칭은 출력의 가독성을위한 것입니다. 테이블 별칭은 쿼리 구조의 가독성을위한 것입니다. 특히 END_LINK하면 관심있는 긴 테이블 이름과 어쩌면 데이터베이스 간 참조를 처리 할 때.

    필드 별칭은 출력의 가독성을위한 것입니다. 테이블 별칭은 쿼리 구조의 가독성을위한 것입니다. 특히 END_LINK하면 관심있는 긴 테이블 이름과 어쩌면 데이터베이스 간 참조를 처리 할 때.

    당신이 당신의 쿼리에서 중복 테이블 참조가있는 경우, 당신은 항상 다른에서 하나 개의 테이블을 구분하기 위해 테이블 ​​별칭을 사용해야합니다. 예를 들어, 가입 부모 - 자식은 다음과 같이 다소 볼 수 있었다 :

    SELECT parent.Name AS ParentName,
    child.Name AS ChildName
    FROM MyTable AS parent
    INNER JOIN MyTable as child
    ON parent.ID = child.ParentID
    
  6. ==============================

    6.아마 빠르게 별칭으로 사용하기 테이블에있는 알 수 있듯이 사용하여.

    아마 빠르게 별칭으로 사용하기 테이블에있는 알 수 있듯이 사용하여.

  7. ==============================

    7.다양한 조인 당신은 거대한 SQL 문이있는 경우, 별명은 어디 열에서 오는 / 쉽게 읽고 이해하도록

    다양한 조인 당신은 거대한 SQL 문이있는 경우, 별명은 어디 열에서 오는 / 쉽게 읽고 이해하도록

    열 이름에 하이픈 (나 이유를 묻지 않는다) 처리 할 수없는 우리의 응용 프로그램 중 하나는, 별명은 COLUMN_NAME에 COLUMN-NAME을 변환하는 완벽한 방법입니다 그래서

  8. ==============================

    8.지금까지 AS 명시해야 할 때 지정한대로, 그것은 특정 엔진과 개인적인 취향 (또는 정책)에 의해 지원되는 구문에 따라 달라집니다.

    지금까지 AS 명시해야 할 때 지정한대로, 그것은 특정 엔진과 개인적인 취향 (또는 정책)에 의해 지원되는 구문에 따라 달라집니다.

    (모든 I 거래입니다) SQL Server에서 AS는 FROM A의 관계 이름 다음의 경우에는 선택 또는 가입이다. 이러한 경우에 나는 때문에 내 취향에 키워드를 생략하고 나는 일관 라인 중심의 사용 형태에 참여할 때 "감소 가독성"하지 않는 것을 발견 것이다.

    그러나 파생 된 쿼리를 사용하는 경우, 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
    
  9. from https://stackoverflow.com/questions/2454951/why-would-you-use-as-when-aliasing-a-sql-table by cc-by-sa and MIT license