Programming/Microsoft SQL Server

1. 주석

Program을 작성(C나 C++, VB등 뭐든지 좋습니다.)할때 작성한 Program Code가 수십에서 수백줄.. 수천줄 정도 된다고 가정해 봅시다.

이렇게 방대하게 만들어진 Program은 당장 개발할때 Program의 Image가 머리에 들어와 있기 때문에 큰 문제가 되진 않습니다만 시간이 지나고 며칠뒤 또는 몇개월 후 해당 Program을 다시 열어봤을때 Program이 도데체 어떻게 돌아가는지 파악하는게 쉽지 않은 경우가 많습니다.

심지어 자신이 만든 Program이다 할지라도 말이지요. 기억할 수 있느냐 하는 문제는 아무도 보장할 수 없는 것입니다.

그래서 Program Code에 개발자가 Code의 역활이나 기타 특징들을 기록해 둘 필요가 있는데 그것이 바로 주석에 해당합니다. 주석이란 프로그램내의 코드에서 실행되지 않는 부분으로 주로 개발자의 설명을 넣는용도로 많이 사용합니다.

SQL Query에서 주석을 표현하는 방법에는 두가지가 있습니다. 하나는 --이고 또다른 하나는 /* 와 */입니다.
단 한줄만 주석으로 처리할경우 --을 많이 쓰고 두줄이상인경우 /* */를 많이 사용합니다.(이 부분은 정해진것이 없습니다. 그냥 편한대로 사용하면 되는 것이죠.)

Select GetDate()

/* 아래 Query는 서버의 현재시간을 구하되 날짜만
표시하도록 합니다. */

Select Convert(Char(10), GetDate(), 120)


/*과 */을 사용해 주석을 표시하고 있습니다. 주석은 Program이 Compil될때 무시되는 부분으로서 오로지 Source상에서만 볼 수 있으며 주석이 아무리 많다 하더라도 Program의 성능을 영향을 끼치는 경우는 종류를 불문하고 없기 때문에 주석처리로 인한 성능문제는 생각하지 않아도 됩니다.(단 Source의 가독성에는 신경을 써야 겠지요.)

2. 식별자 (이름짓기)

데이터베이스를 생성 또는 데이터베이스에 열을 추가하는 경우, 변수 선언이나 뷰, 사용자함수처리등등... 곳곳에서 이름을 짓는 경우는 빈번히 발생합니다.

이런이름을 흔히 식별자라고 하며 MS-SQL에서 이 식별자는 두가지 종류가 존재합니다.

(1) 일반 식별자
(2) 구분 식별자

이름이란것을 '개똥이' 이렇게 내키는 대로 짓고 싶지만 아쉽게도 이름을 짓는데는 몇가지 규칙이 존재합니다. 이 규칙에 근거하여 지어진 이름을 일반식별자라고 부르지요.

그 잘난 이름짓는규칙은 다음과 같은 것들이 있습니다.

(1) 식별자 이름의 처음은 숫자로 시작할 수 없다.
영문이나(물론 한글등 유니코드문자도 사용가능합니다.) _, @, # 문자만 처음시작문자로 사용할 수 있으며 숫자는 두번째 부터 들어갈 수 있습니다.(보통의 경우 @로 시작하는 식별자는 변수, #로 시작하는 식별자는 임시테이블을 의미합니다. 또한 T-SQL내에서 쓰이는 전역함수는 @@로 시작합니다.)

(2) Select나 Delete, Insert등 Query내에서 전용으로 쓰이는 명령어나 이름등은 식별자로 사용할 수 없습니다. 이러한 이름들을 흔히 예약어라고 하는데 예약어를 포함하는 식별자는 사용이 가능합니다.

- Select          → 안됨. SQL Server내에서 Table을 조회하는 예약어임.
- SelectValue  → 가능. Table예약어를 포함하는 식별자

(3) 공백및 _, @, #, & 문자를 제외한 다른 특수문자는 사용할 수 없습니다.

반면 구분식별자는 위 규칙을 따르지 않은 식별자를 의미합니다. 이러한 식별자는 그대로 쓰일 수 없기때문에 반드시 []나 ""로 묶어줘서 사용해야 합니다.

[Select], "Select"

반드시 필요한 경우가 아니면 구분식별자는 그리 권장되지 않는 방법입니다.

'Programming > Microsoft SQL Server' 카테고리의 다른 글

우편번호 DB (MSSQL)  (0) 2010.05.07
[SQL Server] - Sample Database 설치  (0) 2010.05.06
[SQL] 주석과 식별자  (0) 2010.05.04
[SQL] Select  (0) 2010.05.03
[SQL] 시간관련 형식 변환  (0) 2010.04.30
[SQL] Table 조회시 합계 표시하기  (0) 2010.04.26
0 0