읽기 쉬운 SQL 코드 작성

  • Post author:
  • Post category:
  • Post comments:0 Comments
  • Post last modified:April 16, 2004

아래 글은 MSSQL2000 온라인 설명서에 수록된 내용을 바탕으로 제가 약간 수정한 것입니다. 제가 쓴 것은 첫번째 항목과 템플릿에 대한 설명 부분입니다. 의외로 지저분하게 코딩하는 분이 많으셔서 회사에서 작성해서 배포한 글이랍니다.

읽기 쉬운 SQL코드 작성

• 여러 개의 변수 선언 방법

CREATE PROCEDURE dbo.AgencyView
@call char(1),
@date char(8),
@kind char(1)
AS

CREATE PROCEDURE dbo.AgencyView
      @call char(1)
,          @date char(8)
,          @kind char(1)
AS

EM에서 저장 프로시저를 생성하거나 저장 프로시저의 SQL 코드를 볼 때, 두 번째 방법으로 작성한 코드가 잘 보인다. ‘,’ 를 빼먹는 실수를 하여 Syntax Error가 흔히 발생한다. 위와 같은 접근으로 그러한 실수를 줄일 수 있다.

• 만든 이, 날짜, 변경에 대한 설명이 들어 있는 주석을 사용하여 프로그램 또는 스크립트를 설명하십시오. (Stored Procedure Template을 사용한다.)

• 다음과 같이 문을 쉽게 읽기 위해 각각의 주요 Transact-SQL 절을 분리된 줄에 넣으십시오.

USE pubs
SELECT au_fname, au_lname
FROM authors
WHERE state = ‘CA’

• 다음과 같이 SELECT와 FROM 등의 Transact-SQL 키워드, SUM, AVG, DATEPART, CASE, CONVERT 등의 함수 이름 및 INT, CHAR, NTEXT 등의 데이터 형식을 대문자로 넣으십시오.

USE pubs
CREATE TABLE myauthors
(
  first VARCHAR(30) NOT NULL
, last VARCHAR(40) NOT NULL
, address VARCHAR(40) NOT NULL
, city VARCHAR(30) NOT NULL
, state VARCHAR(2) NOT NULL
, zip CHAR(9) NOT NULL
, phone VARCHAR(20) NULL
)

• 개체의 이름에 대한 스타일 규칙을 정의하고 지속적으로 사용하십시오. 일반적인 규칙은 다음 두 가지입니다.
1. 각 이름의 부분마다 첫 문자를 대문자로 사용하고 밑줄로 분리하지 않습니다(예: TableName).
2. 모두 소문자로 쓰되 각 이름의 부분마다 밑줄 문자(_)로 구분합니다(예: table_name).

Microsoft® SQL Server™의 현재 인스턴스가 대소문자를 구별하지 않더라도 일관된 스타일을 사용하면 가독성이 높아집니다. 항상 개체를 정의할 때 사용한 것과 똑같은 대소문자를 사용하여 Transact-SQL 문의 개체 이름을 코딩하는 것이 좋습니다.

• 조직에서 일반적으로 사용하는 개체를 위해 개체 이름에 지속적으로 사용되는 표준 약어 집합을 정의하십시오.

•큰따옴표(”)는 따옴표 붙은 식별자에만 사용하므로 모든 문자, 문자열, 이진수 및 유니코드 상수에는 작은따옴표를 사용하십시오.
다중 테이블 조인을 사용할 때는 입력하기 쉽고 기억하기 쉬운 별칭 이름을 사용하십시오. 예를 들어, titles 테이블을 위해서는 별칭 t를, authors 테이블을 위해서는 별칭a를 사용하십시오.

• Transact-SQL 키워드의 다음 정보가 다음 줄로 줄바꿈될 경우 주요 키워드를 쉽게 찾을 수 있도록 두 번째 줄부터는 한 탭(보통 공백 5칸)씩 들여쓸 수 있습니다.
괄호를 사용하여 복잡한 수학 연산의 실행 순서를 지정하십시오. 이렇게 하면 가독성이 높아집니다. 예를 들어, “price * 1.15 + sales” 대신 “(price * 1.15) + sales”를 사용하십시오.

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments