복붙노트

[SQL] 당신은 무엇 SQL 코딩 표준을 따라야합니까? [닫은]

SQL

당신은 무엇 SQL 코딩 표준을 따라야합니까? [닫은]

어떤 널리 사용되는 SQL 코딩 표준은 거기에 있습니까? SQL은 프로그래밍 언어의 C / C ++ 유형과 조금 다릅니다. 정말 얼마나 쉽게 읽을 수 있도록 가장 적합한 형식을 해야할지 모르겠다.

해결법

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

    1.더 코딩 스타일처럼 - 그것은 표준 코딩을 호출하지 않을까요

    더 코딩 스타일처럼 - 그것은 표준 코딩을 호출하지 않을까요

    SELECT
        T1.col1,
        T1.col2,
        T2.col3
    FROM
        table1 T1
        INNER JOIN ON Table2 T2 ON T1.ID = T2.ID
    WHERE
        T1.col1 = 'xxx'
        AND T2.Col3 = 'yyy'
    
  2. ==============================

    2.나는 길을 앞에 쉼표를 좋아한다 :

    나는 길을 앞에 쉼표를 좋아한다 :

    SELECT
          column1
        , column2
        , column3
        , COALESCE(column4,'foo') column4
    FROM
        tablename
    WHERE
        column1 = 'bar'
    ORDER BY 
          column1
        , column2
    

    그것은 내 의견에 읽기 쉬운 디버깅합니다.

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

    3.나는이 긴 알고 있지만, 곰 나와 함께, 그것은 중요합니다. 이 질문은 웜의 시원한 캔을 열었다. 당신은 데이터베이스 블록 좋아하지 않는 경우에, 읽어.

    나는이 긴 알고 있지만, 곰 나와 함께, 그것은 중요합니다. 이 질문은 웜의 시원한 캔을 열었다. 당신은 데이터베이스 블록 좋아하지 않는 경우에, 읽어.

    누군가가 내 반응을 쓰러 뜨린에 대해 생각하기 전에 그리고, 다음 문서 및 잠금에 대한 연결된 기사 및 재 컴파일을 참조하십시오; SQL 데이터베이스에서 가장 손상 자원 안타 두 가지.

    http://support.microsoft.com/kb/263889

    나는 꽤 빨리 입력 할 수 있습니다, 나는 다음 사람보다 더 많은 입력을 좋아하지 않아요. 하지만 아래의 점을 더 입력 경우에도 매우 밀접하게 따르십시오. 너무 많이 나는 내 자신의 SP를 구축 한 것을 나를 위해 그것을 할 애플 리케이션.

    내가 불러 점은 정말 중요하다! 당신은 심지어 "당신이 문제가 아니라 그, 농담"자신에게 말할 수, 음, 당신은 위의 기사를 읽을하지 않았다. AND, 그것은 M $는 참고로 이러한 점을 넣어 것을 완전히 바보 같은입니다. 나에게 이러한 문제는 대담하고 비명해야한다.

    또한 개발 속도를 높이기 위해 C #을 응용 프로그램을 사용하여 내 기본 스크립트를 구축하기 위해 코딩을 많이 할 이러한 관행은 매우 쉽고, 특히 빠른 스크립팅의 SP를 만들기 위해 (10 년 가치) 소리가있다.

    이이보다 더 있지만, 이것은 내가 모든 것을 처음 60 %를 위해 할 것입니다.

    모범 사례

    환경 설정

    고르다

    최신 정보

    끼워 넣다

    또는

    지우다

  4. ==============================

    4.당신이 구글 경우,이 표준을 코딩의 많음이있다. 예를 들어,

    당신이 구글 경우,이 표준을 코딩의 많음이있다. 예를 들어,

    표준 및 가이드 라인 코딩 데이터베이스

    표준 및 가이드 라인 전체 목록을 코딩 SQL 서버 데이터베이스

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

    5.PostgreSQL을에 정말 아주 좋은 블로그,하지만이 주제에서 일반적으로 적용 할 수있다 :

    PostgreSQL을에 정말 아주 좋은 블로그,하지만이 주제에서 일반적으로 적용 할 수있다 :

    유지 보수 쿼리 - 나의 관점 (depesz.com)

    나는 어떻게 내 자신을 제외하고, 예약 된 단어의 대문자와 모든 다른 식별자에 동의합니다.

  6. ==============================

    6.SP_와 저장 프로 시저의 이름을 접두사처럼 개인적으로하지 않습니다 - 그것은 IMO, 중복입니다. 대신에, 나는 "단위 기능의"식별자를 접두사 것을 좋아합니다. 예를 들면 나는 등 주문 order_Save, order_GetById, order_GetByCustomer, 그것은 그들 모두 논리적으로 관리 스튜디오에서 그룹화하고 힘들어 잘못된 하나를 선택하게 유지에 대처하기 위해 sprocs가 전화 할게. (GetOrderByProduct, GetCustomerById 등)

    SP_와 저장 프로 시저의 이름을 접두사처럼 개인적으로하지 않습니다 - 그것은 IMO, 중복입니다. 대신에, 나는 "단위 기능의"식별자를 접두사 것을 좋아합니다. 예를 들면 나는 등 주문 order_Save, order_GetById, order_GetByCustomer, 그것은 그들 모두 논리적으로 관리 스튜디오에서 그룹화하고 힘들어 잘못된 하나를 선택하게 유지에 대처하기 위해 sprocs가 전화 할게. (GetOrderByProduct, GetCustomerById 등)

    물론, 다른 사람 등 모두 함께 가져 오기 sprocs가 모든 저장 사람을 가지고 개인 취향을 선호 할 수있다

    그냥 내 2C.

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

    7.나는 일반적으로 아주 작은 라인, 즉 당 유지 :

    나는 일반적으로 아주 작은 라인, 즉 당 유지 :

    select
        col1,
        col2,
        col3
    from
        some_table tabl1
    where
        col1 = 'some'
    and 
    (
        col2 = 'condition'
    or  col2 = 'other'
    )
    
  8. ==============================

    8.여기에 SQL 꽤 프린터 나 모양에 대한 구글. 나 자신에서 그것을 시도하지 않은, 그러나 그것은 당신에게 좋은 시작을 제공합니다. 두꺼비와 같은 대부분의 상용 도구도 도움 "서식"옵션이 있습니다.

    여기에 SQL 꽤 프린터 나 모양에 대한 구글. 나 자신에서 그것을 시도하지 않은, 그러나 그것은 당신에게 좋은 시작을 제공합니다. 두꺼비와 같은 대부분의 상용 도구도 도움 "서식"옵션이 있습니다.

  9. ==============================

    9.www.sqlinform.com 함께 놀러 - 나는 그 사이트에 꽤 그것을 다음 ANSI-92 표준을 사용하는 것이 좋습니다합니다.

    www.sqlinform.com 함께 놀러 - 나는 그 사이트에 꽤 그것을 다음 ANSI-92 표준을 사용하는 것이 좋습니다합니다.

  10. ==============================

    10.

    SELECT c.id
         , c.name
         , c.folder
         , cs.num_users active_members
         , cs.num_videos
    
      FROM campaign c
      JOIN campaign_stats cs
        ON cs.campaign_id = c.id
      JOIN (SELECT _c.id
                 , _c.name
    
              FROM campaign _c
             WHERE _c.type = 9) t_c 
        ON t_c.id = c.id
    
     WHERE c.id IN (1,2,3)
       AND cs.num_videos > 10
    

    이것은 우리에게 꽤 잘 작동합니다.

    내가 예로서 신속하게 구축하려고 때문에 실제 쿼리는 훨씬 이해가되지 않습니다 ...하지만 요점은 그게 아니다.

  11. ==============================

    11.나는 내가 거의 20 년 동안 사용했던 코딩 스타일이 목록에없는 것을 놀라게하고 있습니다 :

    나는 내가 거의 20 년 동안 사용했던 코딩 스타일이 목록에없는 것을 놀라게하고 있습니다 :

      SELECT column1,
             column2,
             column3,
             COALESCE(column4, 'foo') AS column4
        FROM tablename
       WHERE column1 = 'bar'
    ORDER BY column1,
             column2
    

    나는이에게 절대적으로 가장 읽기를 찾아,하지만 난 그것을 입력하는 지루한 것을 인정한다. 키워드를 정렬하는 것이 너무 많은, 나는 왼쪽 정렬에 적합한 선택하는 것입니다 경우 그 :

    SELECT   column1,
             column2,
             column3,
             COALESCE(column4, 'foo') AS column4
    FROM     tablename
    WHERE    column1 = 'bar'
    ORDER BY column1,
             column2
    
  12. ==============================

    12.파란색 뭐든지 대문자 SELECT, DELETE, GO 등이다

    파란색 뭐든지 대문자 SELECT, DELETE, GO 등이다

    테이블 이름은 우리의 고객이 고객 테이블 될 것이다 보유하고있는 테이블과 같은 단수

    연결 테이블 tablename_to_tablename 있습니다

    테이블 이름 및 매개 변수에 작품 사이에 _ 사용

    BEGIN
        SELECT
            Company.ID AS Company_ID,
            Company.Client_Name,
            Company.Website,
            Office.Office_Name
        FROM
            Company_Office WITH(NOLOCK)
            INNER JOIN Company WITH(NOLOCK) ON Company_Office.Company_ID = Company.ID
        WHERE
    END
    
  13. ==============================

    13.데이터 형식을 사용할 수 : 우리는 다음과 같은 데이터 유형을 사용한다 :

    데이터 형식을 사용할 수 : 우리는 다음과 같은 데이터 유형을 사용한다 :

    BIT 데이터 타입에 대한 기본 값을 지정합니다. 그것은 널 (NULL) 안 테이블 및 열 이름은 소문자 않을 것입니다. 그것은 그것의 목적을 설명한다. 짧은 형태를 사용하지 마십시오. 테이블을 만드는 동안 FK와 PK 잘 생각하고 정의합니다. 변수 이름은 소문자로 데이터 유형을 나타내는 하나 / 두 개의 문자로 시작해야합니다. 의 경우 예를 들어, INT 변수는 I로 시작해야합니다. 이름 설명해야 짧은 형태는 피해야한다. 그것은 대문자로 시작해야 각 단어는 모두 소문자 하였다.

    EG

    올바른 방법 : - iTotalCount

    잘못된 방법 : - XYZ

    사용 테이블 컬럼은 "WHERE"저장 프로 시저 내부에 절은 인덱스 / 키 입력해야합니다. 이것은 데이터 처리 속도를 증가시킬 것이다. 절을 제대로 수행해야 WHERE에서 매개 변수의 주문. 기본 키 / 인덱스는 비트 변수를 선행해야한다. E.g.:- 인덱스는 열 (REF_ID, T_TYPE_STR, CNUMBER, TLOG_ID)의 조합을 만들어

    - 인덱스 키 'WHERE'절에 순차적으로 사용하는 올바른 방법을

    SELECT REF_ID,T_TYPE_STR,C_NUMBER,TLOG_ID
    
    FROM T_T_DATA_tbl
    
    WHERE REF_ID = 1
    
    AND LOG_ID = ‘4042654’
    
    AND T_TYPE_STR = ‘SA’
    
    AND CNUMBER = ‘10702’
    
    –Incorrect way
    
    SELECT REF_ID, T_TYPE_STR, CNUMBER, LOG_ID
    
    FROM T_T_DATA_tbl
    
    WHERE LOG_ID = ‘4042654’
    
    AND T_TYPE_STR = ‘SA’
    

    저장 프로 시저를 작성하는 동안 우리는이 포함됩니다 처음에 설명 섹션을 가져야한다 저자:

    제작 일:

    기술:

    모든 SP가 변경되는 경우,이 섹션에 추가되어야

    에 의해 수정 된 항목 :

    에 수정 된 항목 :

    기술:

    ROW_INSERTION_DATE_TIME 및 ROW_UPDATION_DATE_TIME 열이 GETDATE 같은 기본 값을 가져야한다 ().

    더에서 : http://www.writeulearn.com/sql-database-coding-standards/

  14. ==============================

    14.

    create table
        #tempTable (
            col1 int,
            col2 int,
            col3 int
        )
    
    insert into
        #tempTable (
            col1,
            col2,
            col3
        )
        select
            col1,
            col2,
            col3
        from
            Table3
            inner join Table2
                on Table1.col1 = Table2.col2
        where col1 = 5
    
    select
        col2,
        case when col1 = 3
            then 'something'
            else 'somethingelse'
        end
    from #tempTable
    where
        col1 = 5
        and (
            col2 = 5
            or col3 in (
                select field
                from Table2
                where
                    somecol = 2
                    and othercol = 5
            )
        )
    
  15. from https://stackoverflow.com/questions/522356/what-sql-coding-standard-do-you-follow by cc-by-sa and MIT license