이번에는 insert 문에 대해서 알아보겠습니다.
insert into 구문을 사용하면 테이블에 데이터를 삽입할 수 있습니다.
형식은 다음과 같습니다.
INSERT INTO table_name [ (attribute_list) ] values (value_list) [;]
INSERT INTO table_name DEFAULT [VALUE] [;]
table_name : 데이터를 입력하고자 하는 테이블 이름
attribute_list : 입력하고자 하는 값의 컬럼 이름. 만약 attribute_list를 명시하지 않으면 테이블에 정의된 모든 컬럼에 대한 값을 넣어야합니다. 만약 attribute_list에 일부 컬럼만 명시가 된다면 나머지 컬럼에는 정의된 디폴트 값이 할당되며 디폴트 값이 없을 경우 NULL 값이 할당됩니다.
value_list : attribute_list 의 컬럼에 대응되는 값을 명시합니다. value_list 의 항목은 표현식, 메소드 호출일 수 있으며, attribute_list 의 속성 위치와 도메인 형식이 일치해야 합니다. 각 이름과 값은 콤마(,)로 구별됩니다.
DEFAULT : 두 번째 형식의 INSERT 문은 각각의 속성에 디폴트 값을 할당하여 데이터를 생성합니다. 만약 테이블 정의에서 컬럼에 디폴트 값이 설정되어 있지 않으면 그 컬럼의 값으로 NULL이 할당됩니다.
처음 접하시는 분들은 아마 이해가 잘 안되실텐데 예제를 살펴보도록 하겠습니다.
먼저 제가 만든 테이블을 살펴보겠습니다.
TEST 란 테이블에 컬럼이 ID, TITLE, CONTENT, FILENAME 이렇게 있네요.
각각 컬럼에 값이 4개가 들어가 있네요.
여기에서 추가를 해보겠습니다.
INSERT INTO TEST(ID, TITLE, CONTENT, FILENAME) VALUES('값 입력', 'INSERT INTO문', '값을 입력하는것입니다.', '이해가 되셨는가요?');
이렇게 하고 결과를 보도록 하죠
네~입력이 잘 되었네요.
그럼 이번에는 다르게 한번 넣어볼께요.
INSERT INTO TEST VALUES('간략한', 'INSERT', 'INTO', '방법입니다.');
앞전이랑 좀 다른부분이 있죠?
네~그렇습니다. 바로 필드명을 명시를 안해주었는데 이렇게 해주어도 되냐구요? 결과를 보도록 하죠.
정상적으로 값이 들어가지네요.
INSERT INTO 문을 사용할때 컬럼값을 생략하고자 하면 VALUES 다음에 넣는 값을 각각컬럼의 형식에 맞게끔 넣어주면 값이 정상적으로 들어가지게 됩니다.
단 주의할점은 컬럼의 순서에 맞는 형식을 입력해야 하며 모든 컬럼의 값을 입력해야 합니다. 그렇지 않으면 에러가 납니다.
예제를 한번 보도록 하죠.
컬럼이 총 4개인데 입력값은 3개이죠? 그럼 결과가 어떻게 나올까요?
예~ 무시무시한 오류를 발생시키면서 값을 입력 못하네요.
INSERT INTO 문을 사용할때 컬럼값을 생략하고싶으시면 모든 컬럼에 대한 맞는 값을 넣어줘야 한다는것을 잊으시지 마시구요.
만약 특정 컬럼에만 값을 넣고 싶으시다면 이렇게 하시면 됩니다.
INSERT INTO TEST(ID) VALUES('ID에만 값 입력');
결과를 볼까요
ID 컬럼에만 값이 입력되고 나머지는 NULL 값이 되는것이 보이네요.
이해가 잘 되셨나요?
궁금하신점은 댓글로 주세요~
'IT 프로그래밍 > ORACLE' 카테고리의 다른 글
오라클 그룹함수에 대한 기본 이해 (0) | 2014.01.26 |
---|---|
ORACLE UPDATE SET 기초 설명 및 응용 (0) | 2014.01.25 |
ORACLE ALTER TABLE COLUMN 삭제하는 DROP (0) | 2014.01.25 |
ORACLE ALTER TABLE COLUMN 속성 변경하는 MODIFY (0) | 2014.01.25 |
ORACLE ALTER TABLE 컬럼 추가하는 ADD 명령어 (0) | 2014.01.25 |