SQL에 대한 공개된 코딩 스타일 지침이 있습니까?
종종 매우 복잡한 SQL 문으로 끝나곤 하는데 쿼리의 다양한 측면을 배치하는 일반적인 방법을 지시하는 스타일 가이드라인이 있는지 궁금했습니다.
Python의 PEP8 또는 Zend Frameworks 가이드라인에 따라 설명하는 것을 찾고 있으며 예를 들어 코드화하는 것은 아닙니다.
대부분의 질의는 MySQL을 위해 작성되었습니다.
그래서 당신은 유니버설 스타일 가이드를 알고 있습니까?아마 당신이 직접 쓴 것일 겁니다.가이드라인을 공유해 주시기 바랍니다.
이 질문을 한 이후로 저는 Creative Commons Attribution-ShareAlike 라이선스 하에 Joe Celko의 SQL Programming Style 책과 호환되는 공개 SQL 스타일 가이드를 작성했습니다.
www.sqlstyle.guide 또는 GitHub repo에서 직접 마크다운으로 이용할 수 있습니다.
다음은 SQL 프로그래밍 지침 및 모범 사례입니다.
- 쿼리에 SELECT *를 사용하지 마십시오.
- SQL 문에 둘 이상의 소스가 포함된 경우 항상 테이블 별칭을 사용합니다.
- 이전 스타일 조인 대신 더 읽기 쉬운 ANSI-Standard Join 절을 사용합니다.
- ORDER BY 절에 열 번호를 사용하지 마십시오.
- INSERT 문에는 항상 열 목록을 사용해야 합니다.
- T-SQL 코드에는 절대 큰따옴표를 사용하지 마십시오.
- 저장 프로시저 이름 앞에 "sp_"을 붙이지 마십시오.
- 항상 SQL 형식을 사용하여 Instant SQL 형식처럼 SQL 형식 지정(무료 및 온라인)
이 블로그 게시물에서 우수 사례에 대한 자세한 설명을 확인하실 수 있습니다.
제가 아는 가이드는 Joe Celko의 SQL Programming Style과 존경받는 Code Complete입니다.
SQL-92 표준도 있습니다.스타일 섹션이 포함되어 있지 않지만 암묵적으로 표준 스타일이라고 생각할 수 있습니다.
MySQL에는 다소 엄격한 규칙에 대한 간략한 설명이 있습니다.
https://dev.mysql.com/doc/internals/en/coding-style.html
사이먼 홀리웰(Simon Holywell)의 MySQL에 대한 가장 일반적인 코딩 스타일:
이 질문도 참조하십시오.MySQL에 대한 명명 규칙이 있습니까?
킥스타터는 여기에 스타일 가이드가 있습니다.소문자 SQL과 Celko의 "river"를 선호하는 사람들을 위해 수정된 버전이 있습니다.
제 스타일 가이드가 여기 있습니다.다음은 샘플입니다.
-- basic select example
select p.Name as ProductName
, p.ProductNumber
, pm.Name as ProductModelName
, p.Color
, p.ListPrice
from Production.Product as p
join Production.ProductModel as pm
on p.ProductModelID = pm.ProductModelID
where p.Color in ('Blue', 'Red')
and p.ListPrice < 800.00
and pm.Name like '%frame%'
order by p.Name
-- basic insert example
insert into Sales.Currency (
CurrencyCode
,Name
,ModifiedDate
)
values (
'XBT'
,'Bitcoin'
,getutcdate()
)
-- basic update example
update p
set p.ListPrice = p.ListPrice * 1.05
, p.ModifiedDate = getutcdate()
from Production.Product as p
where p.SellEndDate is null
and p.SellStartDate is not null
-- basic delete example
delete cc
from Sales.CreditCard as cc
where cc.ExpYear < '2003'
and cc.ModifiedDate < dateadd(year, -1, getutcdate())
팀에 포맷 기능이 내장된 툴을 사용하도록 하는 것에 대해 생각해 보셨습니까?MySql용 Toad에는 이것이 있습니다.가이드가 되지는 않겠지만 최소한의 일관성은 가져올 것입니다.
언급URL : https://stackoverflow.com/questions/5951245/are-there-any-published-coding-style-guidelines-for-sql
'programing' 카테고리의 다른 글
시퀀스를 제거하는 방법은? (0) | 2023.09.07 |
---|---|
JDBC Java 연결이 거부되었습니다. 연결 (0) | 2023.09.07 |
Moment.js를 사용하여 날짜 형식 지정 및 날짜 빼기 (0) | 2023.09.07 |
ODP.NET으로 Oracle 11g에서 보호된 메모리 읽기 또는 쓰기 시도 (0) | 2023.09.07 |
C 프로그램은 동일한 고정 길이 데이터 유형을 사용함에도 불구하고 여러 기계에서 다른 결과를 산출합니다. (0) | 2023.09.07 |