본문 바로가기

[DB] 컬럼명에 숫자 사용하는법

728x90

데이터베이스를 사용하다 보면 컬럼명 지정에 제한이 있습니다.
컬럼명 맨 앞에 숫자가 온다거나(0~9), 특수문자로 지정할 경우 오류가 나며 테이블 생성이 되지 않습니다.
굳이 숫자나 특수문자로 사용할 이유는 없지만 필요할 경우를 위해 방법을 정리합니다.

 

 

컬럼명에 숫자 사용하는법
< 컬럼명에 숫자 사용하는법 >

 

목차(Contents)

     

    오류발생 내용

    테이블 생성 시 컬럼명을 숫자로 지정하면 다음과 같이 오류메시지가 발생합니다.

    특수문자로 지정할 경우에도 동일한 오류가 나타납니다.

    CREATE TABLE TEST_TABLE(
        Seq         INT,
        Name        NVARCHAR(100),
        1           INT,
        2           INT,
        3           INT,
        Remark      NVARCHAR(100)
    )

     

     

    해결방법

    이런 경우에는 다음과 같이 컬럼명을 '['와 ']'로 감싸주면 등록이 가능합니다.

     

    CREATE TABLE TEST_TABLE(
        Seq         INT,
        Name        NVARCHAR(100),
        [1]         INT,
        [2]         INT,
        [3]         INT,    
        Remark      NVARCHAR(100)
    )

     

     

     

    테이블 생성 후 SELECT 문을 실행하면 위와 같이 잘 나오는 것을 볼 수 있습니다.

    하지만, 테이블을 이렇게 만들면 데이터 INSERT를 실행할 때도 컬럼명을 []로 감싸야 합니다.

     

     

    귀찮아서 캡쳐해서 올렸습니다..ㅎㅎ

     

    그리고 SELECT 시에도 컬럼명을 지정할 경우 Alias에 []를 지정하여야 컬럼명이 표시됩니다.

    지정하지 않아도 오류는 발생하지 않지만 컬럼명이 사라지는 불상사가 발생합니다.

     

     

     

    하면 할 수록 컬럼명에 왜 금지어를 썼는지 후회가 되네요..

    컬럼명칭은 숫자랑 특수문자, 시스템예약어는 사용하지 말아야겠습니다.

     

    추가로 MSSQL에서는 []로 감싸서 SELECT가 가능하고,

    오라클에서는 쌍타옴표(")로 감싸면 컬럼명칭을 표현 가능합니다.

     

    결론. "시스템이 하지말라는건 하지말자" 입니다..

    반응형