혹 이런 고민에 빠진 독자가 있을지 모르지만, 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
하지만 될수 있으면 예약어의 사용은 피하는 것이 좋습니다. 다른 곳에서 또다른 에러를 야기할 가능성을 가지고 있기 때문입니다.
|