Categories: DataBase

Oracle 오라클 예약어 목록

오라클 예약어란?

오라클 데이터베이스의 예약어(reserved words)는 특정 목적으로 사용되는 단어들입니다. 이 예약어들은 오라클에서 특별한 의미를 가지며, 테이블이나 칼럼명 등으로 사용할 수 없습니다. 다음은 오라클 예약어와 그들의 기능을 나타내는 표입니다. 이 표는 오라클의 주요 예약어들을 포함하고 있지만, 모든 예약어를 포함하고 있지 않을 수 있습니다. 오라클 버전에 따라 예약어 목록이 다를 수 있으니, 최신 버전의 문서를 참고하시기 바랍니다.

오라클 예약어 목록

예약어설명
ACCESS특정 데이터 접근 방식을 지정하는데 사용됩니다. 일반적으로 권한 부여에 사용됩니다.
ADD기존 객체에 새로운 요소를 추가하는 데 사용됩니다. 예를 들어, 테이블에 새 칼럼을 추가할 때 사용합니다.
ALL쿼리에서 모든 행이나 칼럼을 참조할 때 사용됩니다. 예를 들어, SELECT ALL 구문에서 사용됩니다.
ALTER데이터베이스 내의 객체를 수정하거나 변경하는 데 사용됩니다. 예를 들어, 테이블의 구조를 변경할 때 사용합니다.
AND여러 조건을 결합할 때 사용되는 논리 연산자입니다. 모든 조건이 참이어야 전체 조건이 참으로 평가됩니다.
ANY서브쿼리 결과 중 임의의 값 하나만 만족해도 되는 조건을 지정할 때 사용됩니다.
AS별칭을 지정하는 데 사용됩니다. 주로 칼럼이나 테이블 이름을 간단하게 표현하기 위해 사용됩니다.
ASC결과를 오름차순으로 정렬할 때 사용되는 키워드입니다. 기본 정렬 방식입니다.
AUDIT데이터베이스 활동의 감사(로그 기록) 기능을 활성화하는 데 사용됩니다.
BETWEEN주어진 두 값 사이에 위치하는 행을 선택할 때 사용됩니다. 예를 들어, 특정 범위의 날짜나 숫자를 조회할 때 사용됩니다.
BY정렬 기준을 지정할 때 사용됩니다. 예를 들어, ORDER BY 구문에서 사용됩니다.
CHAR고정 길이 문자형 데이터 타입을 지정하는 데 사용됩니다.
CHECK데이터베이스 내의 테이블에 설정된 제약 조건을 검사하는 데 사용됩니다.
CLUSTER데이터베이스 내에서 관련 데이터들을 물리적으로 가깝게 저장하기 위한 클러스터를 생성하거나 관리할 때 사용됩니다.
COLUMN칼럼과 관련된 작업, 예를 들어 칼럼 추가나 수정 시 사용됩니다.
COMMENT데이터베이스 객체에 주석을 추가할 때 사용됩니다. 객체의 설명을 제공하기 위해 사용됩니다.
COMPRESS테이블의 데이터 저장 공간을 압축하는데 사용됩니다. 공간 효율성을 높일 때 유용합니다.
CONNECT데이터베이스에 접속하기 위해 사용되는 키워드입니다. 사용자 인증 후 세션을 시작할 때 사용됩니다.
CREATE새로운 데이터베이스 객체(테이블, 뷰, 인덱스 등)를 생성할 때 사용됩니다.
CURRENT현재의 세션, 사용자, 날짜 등을 참조할 때 사용되는 키워드입니다.
DATE날짜형 데이터 타입을 지정할 때 사용됩니다. 날짜와 시간 정보를 저장하는데 사용됩니다.
DELETE데이터를 삭제하는데 사용됩니다. 주로 테이블에서 특정 조건을 만족하는 행을 제거할 때 사용됩니다.
DESC결과를 내림차순으로 정렬할 때 사용되는 키워드입니다.
DISTINCT중복된 결과를 제거하고 유일한 값만을 선택할 때 사용됩니다. 주로 중복을 피하기 위해 SELECT 구문과 함께 사용됩니다.
DROP데이터베이스 객체를 삭제할 때 사용됩니다. 예를 들어, 테이블이나 뷰를 삭제할 때 사용됩니다.
ELSEIF 구문이나 CASE 표현식에서 조건이 거짓일 경우 수행될 작업을 지정하는 데 사용됩니다.
EXCLUSIVE배타적 모드 설정을 위해 사용됩니다. 예를 들어, 특정 작업 동안 다른 사용자의 접근을 제한할 때 사용됩니다.
EXISTS서브쿼리 결과가 존재하는지 여부를 확인할 때 사용됩니다.
FILE데이터베이스와 관련된 파일 작업을 지정할 때 사용됩니다.
FLOAT부동 소수점 데이터 타입을 지정할 때 사용됩니다. 소수점 이하의 데이터를 저장하는데 사용됩니다.
FOR반복 작업을 지정할 때 사용됩니다. 예를 들어, LOOP 구문에서 사용됩니다.
FROM쿼리에서 데이터를 조회할 소스(테이블, 뷰 등)를 지정할 때 사용됩니다.
GRANT사용자나 역할에게 특정 권한을 부여할 때 사용됩니다.
GROUP쿼리 결과를 특정 칼럼의 값에 따라 그룹화할 때 사용됩니다. 주로 집계 함수와 함께 사용됩니다.
HAVINGGROUP BY로 그룹화된 결과에 대해 조건을 지정할 때 사용됩니다. WHERE 절과 유사하지만 집계 함수에 대한 조건을 지정하는 데 사용됩니다.
IDENTIFIED인증 방식을 지정할 때 사용됩니다. 주로 사용자 생성 시 비밀번호를 지정하는 데 사용됩니다.
IMMEDIATE명령이나 트랜잭션을 즉시 실행할 때 사용됩니다.
IN주어진 목록이나 서브쿼리 결과에 속하는 값을 찾을 때 사용됩니다.
INCREMENT숫자값을 증가시키는 양을 지정할 때 사용됩니다. 주로 시퀀스 생성 시 사용됩니다.
INDEX인덱스와 관련된 작업을 지정할 때 사용됩니다. 예를 들어, 인덱스 생성이나 삭제 시 사용됩니다.
INITIAL객체 생성 시 초기 설정을 지정할 때 사용됩니다. 예를 들어, 테이블 생성 시 초기 저장 공간을 지정할 때 사용됩니다.
INSERT데이터를 삽입할 때 사용됩니다. 주로 테이블에 새로운 행을 추가할 때 사용됩니다.
INTEGER정수형 데이터 타입을 지정할 때 사용됩니다. 숫자 데이터를 저장하는데 사용됩니다.
INTERSECT두 쿼리 결과의 교집합을 반환할 때 사용됩니다.
INTOINSERT 문에서 삽입될 데이터의 대상 테이블을 지정할 때 사용됩니다.
IS값의 일치 여부를 확인할 때 사용되는 키워드입니다. 주로 NULL 값의 존재 여부를 확인할 때 사용됩니다.
LEVEL계층형 쿼리에서 각 행의 계층 수준을 표시할 때 사용됩니다.
LIKE패턴 매칭을 사용해 문자열을 검색할 때 사용됩니다. 와일드카드 문자(%, _)를 사용한 검색 조건을 지정할 때 사용됩니다.
LOCK특정 데이터베이스 객체에 잠금을 설정할 때 사용됩니다. 동시성 제어를 위해 사용됩니다.
LONG긴 문자형 데이터를 저장하는 데이터 타입을 지정할 때 사용됩니다.
MAXEXTENTS객체가 차지할 수 있는 최대 데이터 블록 수를 지정할 때 사용됩니다.
MINUS두 쿼리 결과의 차집합을 반환할 때 사용됩니다.
MLSLABEL다중 레벨 보안 레이블을 지정할 때 사용됩니다. 데이터의 보안 등급을 지정하는 데 사용됩니다.
MODE트랜잭션의 모드를 설정할 때 사용됩니다. 예를 들어, 읽기 전용 모드를 지정할 때 사용됩니다.
MODIFY기존 객체를 수정할 때 사용됩니다. 예를 들어, 테이블 구조를 변경할 때 사용됩니다.
NOAUDIT데이터베이스 활동에 대한 감사(로그 기록) 기능을 비활성화할 때 사용됩니다.
NOCOMPRESS데이터 압축을 해제할 때 사용됩니다. COMPRESS의 반대 기능을 수행합니다.
NOT조건의 부정을 나타내는 논리 연산자입니다. 주로 조건문에서 사용됩니다.
NOWAIT트랜잭션에서 대기 없이 즉시 실패하도록 지정할 때 사용됩니다. 다른 트랜잭션이 자원을 잠금 상태일 때 유용합니다.
NULL널(값이 없음)을 나타내는 키워드입니다. 주로 조건문에서 사용되며, 값의 부재를 체크할 때 사용됩니다.
NUMBER숫자형 데이터 타입을 지정할 때 사용됩니다. 정수나 소수점을 포함한 숫자 데이터를 저장하는데 사용됩니다.
OF소속을 나타낼 때 사용됩니다. 예를 들어, 특정 칼럼에 속한 값이나 객체의 속성을 참조할 때 사용됩니다.
OFFLINE객체를 오프라인 모드로 설정할 때 사용됩니다. 데이터베이스의 일부를 일시적으로 사용 불가능하게 할 때 사용됩니다.
ON객체를 온라인 모드로 설정하거나, 특정 이벤트 발생 시 동작을 지정할 때 사용됩니다.
ONLINE객체를 온라인 모드로 설정할 때 사용됩니다. 데이터베이스의 일부를 사용 가능하게 할 때 사용됩니다.
OPTION명령에 추가적인 옵션을 지정할 때 사용됩니다. 예를 들어, 쿼리 최적화 옵션을 설정할 때 사용됩니다.
OR여러 조건 중 하나라도 만족하는 경우를 찾을 때 사용되는 논리 연산자입니다. 조건 중 하나만 참이면 전체 조건이 참으로 평가됩니다.
ORDER결과를 특정 기준에 따라 정렬하는 데 사용됩니다. ASC나 DESC와 함께 사용하여 오름차순 또는 내림차순으로 정렬합니다.
PCTFREE테이블이나 인덱스에 데이터를 추가할 때 미리 확보할 공간의 비율을 지정합니다. 데이터베이스 관리에 중요합니다.
PRIOR계층형 쿼리에서 부모 행을 참조할 때 사용됩니다.
PRIVILEGES권한과 관련된 작업을 지정할 때 사용됩니다. GRANT나 REVOKE 명령과 함께 사용됩니다.
PUBLIC모든 사용자에게 적용되는 공개된 객체나 권한을 지정할 때 사용됩니다.
RAW이진 데이터를 저장하는 데이터 타입을 지정할 때 사용됩니다.
RENAME객체의 이름을 변경할 때 사용됩니다. 예를 들어, 테이블이나 뷰의 이름을 변경할 때 사용됩니다.
RESOURCE데이터베이스 리소스와 관련된 작업을 지정할 때 사용됩니다.
REVOKE부여된 권한을 철회할 때 사용됩니다. GRANT와 반대되는 작업을 수행합니다.
ROW행과 관련된 작업을 지정할 때 사용됩니다. 예를 들어, 행의 추가나 삭제 등입니다.
ROWID행의 고유 식별자를 나타내는 키워드입니다.
ROWNUM결과 행의 번호를 나타내는 키워드입니다. 주로 행을 제한하거나 순서를 지정할 때 사용됩니다.
SELECT데이터를 검색하고 조회하는 데 사용되는 가장 기본적인 SQL 명령어입니다.
SESSION현재 데이터베이스 세션을 지정할 때 사용됩니다.
SET값을 설정하거나 변경할 때 사용됩니다. 예를 들어, 업데이트 작업 시 사용됩니다.
SHARE데이터베이스 객체의 공유 모드를 지정할 때 사용됩니다.
SIZE객체의 크기를 지정할 때 사용됩니다. 예를 들어, 초기 공간 할당이나 확장 시 사용됩니다.
SMALLINT작은 크기의 정수형 데이터 타입을 지정할 때 사용됩니다.
START특정 작업이나 트랜잭션을 시작할 때 사용됩니다.
SUCCESSFUL성공적인 작업이나 이벤트를 지정할 때 사용됩니다.
SYNONYM객체의 동의어(다른 이름)를 지정할 때 사용됩니다. 객체에 대한 간접 참조를 가능하게 합니다.
SYSDATE현재 시스템의 날짜와 시간을 나타내는 키워드입니다.
TABLE테이블과 관련된 작업을 지정할 때 사용됩니다.
THENIF 구문이나 CASE 표현식에서 조건이 참일 경우 수행될 작업을 지정하는 데 사용됩니다.
TO범위의 끝을 나타내거나 목표를 지정할 때 사용됩니다. 예를 들어, 날짜 범위를 지정할 때 사용됩니다.
TRIGGER데이터베이스의 특정 이벤트에 자동으로 반응하는 트리거를 작업할 때 사용됩니다.
UID현재 사용자의 고유 식별자를 나타내는 키워드입니다.
UNION두 개 이상의 쿼리 결과를 합치는 데 사용됩니다. 중복된 결과는 제거됩니다.
UNIQUE데이터의 유일성을 보장하는 제약 조건을 설정할 때 사용됩니다. 주로 테이블 생성 시 사용됩니다.
UPDATE기존 데이터를 수정하거나 갱신할 때 사용됩니다.
USER현재 데이터베이스 사용자를 나타내는 키워드입니다.
VALIDATE제약 조건의 유효성을 검사하는 데 사용됩니다.
VALUES데이터 삽입 시 삽입될 값들을 지정하는데 사용됩니다.
VARCHAR가변 길이 문자열 데이터 타입을 지정하는데 사용됩니다. 저장할 문자열의 길이에 따라 공간이 조정됩니다.
VARCHAR2문자열의 길이가 변할 수 있는 데이터 타입입니다. 저장된 문자열 길이에 따라 공간을 차지합니다.
VIEW하나 이상의 테이블로부터 유도된 가상 테이블을 만들고 관리합니다.
WHEN트리거나 조건문에서 특정 조건을 정의합니다. 조건이 충족될 때 특정 동작을 실행합니다.
WHERE특정 조건을 만족하는 데이터를 선택하거나 조작하기 위한 SQL 문입니다.
WITH복잡한 쿼리를 단순화하는 데 사용됩니다. 하위 쿼리를 정의하여 가독성과 성능을 향상시킵니다.

예약어 사용으로 인해 발생하는 문제

오라클 데이터베이스에서 예약어를 테이블명이나 칼럼명 등의 데이터베이스 객체 이름으로 사용하는 것은 기본적으로 허용되지 않습니다. 예약어는 SQL 언어에서 특별한 의미와 기능을 가진 단어들로, 구문의 일부로 해석되기 때문에 이를 객체 이름으로 사용하려고 하면 오류가 발생합니다.

  • 오류 발생: 예약어를 객체 이름으로 사용하려고 할 때, SQL 구문이 올바르게 해석되지 않아 오류가 발생합니다. 이는 SQL 구문이 예약어를 그 기능에 따라 해석하기 때문입니다.
  • 실행 불가: 예약어를 테이블명이나 칼럼명으로 직접 사용하려고 하면, 데이터베이스 시스템이 이를 거부하고 실행을 중단합니다.

대처법

  • 다른 이름 사용: 예약어와 유사하면서도 예약어가 아닌 다른 이름을 사용합니다. 예를 들어, ‘Date’ 대신 ‘EventDate’나 ‘CreationDate’와 같은 이름을 사용할 수 있습니다.
  • 명명 규칙 준수: 일관된 명명 규칙을 따르면 예약어와의 충돌을 방지하고, 코드의 가독성과 유지보수성을 높일 수 있습니다.

예약어 사용시 주의 사항

  • 오라클 문서나 공식 웹사이트에서 제공하는 예약어 목록을 참조하여, 이러한 단어들을 피해야 합니다.
  • 실수로 예약어를 사용하는 것을 방지하기 위해, 데이터베이스 객체를 생성할 때는 항상 예약어 목록을 확인하는 습관을 들이는 것이 좋습니다.

따라서 오라클 데이터베이스에서는 예약어를 테이블명이나 칼럼명으로 사용하는 것을 피하고, 안전한 대안을 사용하여 데이터베이스 객체를 명명하는 것이 중요합니다.

suover

Recent Posts

Java 자바 Set – HashSet, TreeSet, LinkedHashSet 정리

소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…

1개월 ago

Java 자바 Hash 해시 제대로 이해하기

해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…

2개월 ago

Java 자바 리스트 (List) 정리

List란 무엇인가? List는 자바 컬렉션 프레임워크의 핵심 인터페이스 중 하나로, 순서가 있는 데이터를 다루는 데…

2개월 ago

Java 자바 LinkedList 동작 원리와 사용법

LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…

2개월 ago

Java 자바 ArrayList 동작 원리와 사용법

ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…

2개월 ago

Java 자바 제네릭(Generic) 개념과 문법 알아보기

제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…

2개월 ago