departments 테이블의 속성과 제약 조건은 다음과 같습니다.
표 8-2 departments 테이블 속성과 제약 조건
COLUMN_NAME |
DATA_TYPE |
NULLABLE |
DATA_DEFAULT |
COLUMN_ID |
DEPARTMENT_ID |
NUMBER(4,0) |
No |
(null) |
1 |
DEPARTMENT_NAME |
VARCHAR2(30 BYTE) |
No |
(null) |
2 |
MANAGER_ID |
NUMBER(6,0) |
Yes |
(null) |
3 |
LOCATION_ID |
NUMBER(4,0) |
Yes |
(null) |
4 |
VALUES에서 두 번째에 해당하는 department_name의 데이터 타입은 VARCHAR2 타입이므로 문자가 입력되어야 합니다. 그런데 문자를 입력할 때 사용하는 작은따옴표(‘’)를 기술하지 않은 채로 INSERT 명령어를 실행했기 때문에 오라클 데이터베이스 시스템은 입력받은 값을 문자로 판단하지 않으므로 오류를 출력합니다. 마찬가지로 null 값이 허용되지 않는 기본 키인 department_id 열에 null 값을 입력해도 오류를 출력합니다. 이처럼 DML 명령어를 사용할 때는 테이블의 속성과 제약 조건에 주의를 기울여야 합니다.3
INSERT 명령어를 실행했다고 해서 데이터베이스에 영구적으로 반영되는 것은 아닙니다. 실행한 DML 명령어를 최종적으로 데이터베이스에 반영하려면 커밋(commit, 영구적으로 저장)을 해야 합니다. 커밋하기 전까지 실행한 모든 DML은 데이터베이스에 반영되지 않습니다. 커밋하려면 commit;을 입력하여 실행하거나 Oracle SQL Developer 상단의 (F11) 아이콘을 클릭합니다.
commit;
3 제약 조건에 대한 자세한 내용은 9장에서 다룹니다.