혹 이런 고민에 빠진 독자가 있을지 모르지만, SELECT, UPDATE, DELETE 등의 SQL의 예약어를 테이블의 이름이나 열 이름으로 사용해야 할 경우가 있다면 이 기사가 도움이 될 것이다.

기본적으로 예약어들을 사용한다는 것은 이후 관리상의 문제나 여러 가지 문제를 발생시키기 때문에 사용하지 않는 것이 좋다.


하지만 아쉽게도 다른 데이터베이스에서 SQL Server 등으로 마이그레이션을 했을 때 예약어가 테이블명이나 필드명으로 사용되어 어쩔 수 없이 이용해야 한다면  다음과 같이 이용할 수 있다.

SQL Server에서 열 이름은 "["과 "]"로 묶어 표기하면 데이터베이스 객체 이름으로 인식된다.
오라클에서 사용하고 싶다면 큰따옴표로 묶어 기술하면 된다.


Test 테이블에 FROM 필드와 TO열을 생성하고 싶다면 다음과 같은 명령어가 필요하다.

  • SQL Server일 경우
  • CREATE TABLE test ( [FROM] int null, [TO] int null )
     
  • Oracle일 경우
  • CREATE TABLE test ( "FROM" NUMBER(8) null, "TO" NUMBER(8) null )

이를 통해 FROM필드와 TO필드를 가진 테이블이 생성된다. SELECT나 UPDATE에서도 같은 서식을 사용하여 이용할 수 있다.

  • SQL Server일 경우
  • SELECT [FROM] FROM test WHERE [TO] = 45
     
  • Oracle일 경우
  • SELECT "FROM" FROM test WHERE "TO" = 45

* 테이블명이나 필드명등에 공백문자열이 포함되어 두단어 이상으로 사용하고 싶을때도 []를 사용하면 된다.

 

자료출처 : http://korea.internet.com

+ Recent posts