[SQL] 당신은 무엇 SQL 코딩 표준을 따라야합니까? [닫은]
SQL당신은 무엇 SQL 코딩 표준을 따라야합니까? [닫은]
어떤 널리 사용되는 SQL 코딩 표준은 거기에 있습니까? SQL은 프로그래밍 언어의 C / C ++ 유형과 조금 다릅니다. 정말 얼마나 쉽게 읽을 수 있도록 가장 적합한 형식을 해야할지 모르겠다.
해결법
-
==============================
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.나는 길을 앞에 쉼표를 좋아한다 :
나는 길을 앞에 쉼표를 좋아한다 :
SELECT column1 , column2 , column3 , COALESCE(column4,'foo') column4 FROM tablename WHERE column1 = 'bar' ORDER BY column1 , column2
그것은 내 의견에 읽기 쉬운 디버깅합니다.
-
==============================
3.나는이 긴 알고 있지만, 곰 나와 함께, 그것은 중요합니다. 이 질문은 웜의 시원한 캔을 열었다. 당신은 데이터베이스 블록 좋아하지 않는 경우에, 읽어.
나는이 긴 알고 있지만, 곰 나와 함께, 그것은 중요합니다. 이 질문은 웜의 시원한 캔을 열었다. 당신은 데이터베이스 블록 좋아하지 않는 경우에, 읽어.
누군가가 내 반응을 쓰러 뜨린에 대해 생각하기 전에 그리고, 다음 문서 및 잠금에 대한 연결된 기사 및 재 컴파일을 참조하십시오; SQL 데이터베이스에서 가장 손상 자원 안타 두 가지.
http://support.microsoft.com/kb/263889
나는 꽤 빨리 입력 할 수 있습니다, 나는 다음 사람보다 더 많은 입력을 좋아하지 않아요. 하지만 아래의 점을 더 입력 경우에도 매우 밀접하게 따르십시오. 너무 많이 나는 내 자신의 SP를 구축 한 것을 나를 위해 그것을 할 애플 리케이션.
내가 불러 점은 정말 중요하다! 당신은 심지어 "당신이 문제가 아니라 그, 농담"자신에게 말할 수, 음, 당신은 위의 기사를 읽을하지 않았다. AND, 그것은 M $는 참고로 이러한 점을 넣어 것을 완전히 바보 같은입니다. 나에게 이러한 문제는 대담하고 비명해야한다.
또한 개발 속도를 높이기 위해 C #을 응용 프로그램을 사용하여 내 기본 스크립트를 구축하기 위해 코딩을 많이 할 이러한 관행은 매우 쉽고, 특히 빠른 스크립팅의 SP를 만들기 위해 (10 년 가치) 소리가있다.
이이보다 더 있지만, 이것은 내가 모든 것을 처음 60 %를 위해 할 것입니다.
모범 사례
환경 설정
고르다
최신 정보
끼워 넣다
또는
지우다
-
==============================
4.당신이 구글 경우,이 표준을 코딩의 많음이있다. 예를 들어,
당신이 구글 경우,이 표준을 코딩의 많음이있다. 예를 들어,
표준 및 가이드 라인 코딩 데이터베이스
과
표준 및 가이드 라인 전체 목록을 코딩 SQL 서버 데이터베이스
-
==============================
5.PostgreSQL을에 정말 아주 좋은 블로그,하지만이 주제에서 일반적으로 적용 할 수있다 :
PostgreSQL을에 정말 아주 좋은 블로그,하지만이 주제에서 일반적으로 적용 할 수있다 :
유지 보수 쿼리 - 나의 관점 (depesz.com)
나는 어떻게 내 자신을 제외하고, 예약 된 단어의 대문자와 모든 다른 식별자에 동의합니다.
-
==============================
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.나는 일반적으로 아주 작은 라인, 즉 당 유지 :
나는 일반적으로 아주 작은 라인, 즉 당 유지 :
select col1, col2, col3 from some_table tabl1 where col1 = 'some' and ( col2 = 'condition' or col2 = 'other' )
-
==============================
8.여기에 SQL 꽤 프린터 나 모양에 대한 구글. 나 자신에서 그것을 시도하지 않은, 그러나 그것은 당신에게 좋은 시작을 제공합니다. 두꺼비와 같은 대부분의 상용 도구도 도움 "서식"옵션이 있습니다.
여기에 SQL 꽤 프린터 나 모양에 대한 구글. 나 자신에서 그것을 시도하지 않은, 그러나 그것은 당신에게 좋은 시작을 제공합니다. 두꺼비와 같은 대부분의 상용 도구도 도움 "서식"옵션이 있습니다.
-
==============================
9.www.sqlinform.com 함께 놀러 - 나는 그 사이트에 꽤 그것을 다음 ANSI-92 표준을 사용하는 것이 좋습니다합니다.
www.sqlinform.com 함께 놀러 - 나는 그 사이트에 꽤 그것을 다음 ANSI-92 표준을 사용하는 것이 좋습니다합니다.
-
==============================
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.나는 내가 거의 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.파란색 뭐든지 대문자 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.데이터 형식을 사용할 수 : 우리는 다음과 같은 데이터 유형을 사용한다 :
데이터 형식을 사용할 수 : 우리는 다음과 같은 데이터 유형을 사용한다 :
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.
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 ) )
from https://stackoverflow.com/questions/522356/what-sql-coding-standard-do-you-follow by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] MySQL은 낙관적 잠금 (0) | 2020.06.20 |
---|---|
[SQL] 왜 외부 키는 더 많은 연습보다 이론적으로 사용됩니까? (0) | 2020.06.20 |
[SQL] 설정 트랜잭션 격리 수준 READ UNCOMMITTED 대 (NOLOCK) (0) | 2020.06.20 |
[SQL] 스크립트는 MYSQL에서 UTF-8 단 정렬 모든 테이블과 필드를 변경합니다 (0) | 2020.06.20 |
[SQL] 저장 날짜 시간 (UTC) 대 기억하는 DateTimeOffset (0) | 2020.06.20 |