본문 바로가기

초보개발자의 작업노트

'SQL Developer'에서 데이터 삽입(INSERT)하기

반응형

오라클 DB, 'SQL Developer'에서 데이터를 삽입하는 방법을 살펴보자!

참고로 아래 자료는 '한빛미디어'에서 출판된  '이것이 오라클이다'라는 책을 토대로 정리한 것이다.


데이터를 삽입할 때는 'INSERT'라는 명령어를 사용한다.

기본적으로 INSERT INTO 테이블(열1, 열2, ...) VALUES (값1, 값2, ....); 의 형식으로 이루어진다.

'열'은 생략 가능하다.  

그러나 생략할 경우에 VALUE 다음에 나오는 값들의 순서 및 갯수가 테이블에 정의된 열 순서 및 개수와 동일해야 한다.

예를 들어, 다음과 같이 삽일할 데이터가 있다고 하자.

CREATE TABLE testTBL1(id NUMBER(4), userName NCHAR(3), age NUMBER(2));

INSERT INTO testTBL1 VALUES (1, '홍길동', 25);

위의 경우는 평범하게 다음과 같이 데이터를 삽입할 수 있다.


만약, 위의 예에서 id와 이름만 입력하고 나이를 입력하고 싶지 않다면, 테이블 뒤에 입력할 열의 목록을 나열해줘야 한다.

INSERT INTO testTBL1 (id, userName) VALUES (1. '홍길동');

이때, 생략한 age에는 NULL 값이 들어간다.

열의 순서를 바꿔서 입력하고 싶을 때는 꼭 열 이름을 입력한 순서에 맞춰 나열해줘야 한다.

INSERT INTO testTBL1 (userName, age, id) VALUES ('홍길동', 25, 1);


이번에는 자동으로 증가하는 시퀀스(SEQURNCE) 개체를 사용해 보자.

앞의 testTBL1과 비슷한 테이블을 만들어서 id 값이 자동으로 입력되는 방식을 사용해 보겠다.

이를 위해 testTBL2를 생성하자.

CREATE TABLE에서 DEFAULT 문장으로 기본값을 설정해 놓았을 때, INSERT 사용시 별도의 값을 입력하지 않고 지정해 놓은 디폴트 값을 그대로 사용하려면 값이 입력될 자리에 'DEFAULT'라고 써주면 된다.

CREATE TABLE testTBL2(

id NUMBER(4),

userName NCHAR(3),

age NUMBER(2),

nation NCHAR(4) DEFAULT '대한민국'

);

시퀀스를 생성하자. 시작값은 1로, 증가값도 1로 설정한다.

CREATE SEQUENCE idSEQ

START WITH 1     --시작값

INVREMENT BY 1;  --증가값


만약, CREATE SEQUENCE에서 오류가 발생하면, 기존 실습 중에 idSEQ를 이미 생성했기 때문이다.

이 때는 DROP SEQUENCE idSEQ문으로 삭제하고 다시 생성해 본다.

시퀀스를 입력하려며느 시퀀스이름.NEXTVAL이라는 쿼리문을 사용한다.

INSERT INTI testTBL2 VALUES(idSEQ.NEXTVAL, '유나', 25, DEFAULT);

INSERT INTI testTBL2 VALUES(idSEQ.NEXTVAL, '혜정', 24, '영국');

SELECT * FROM testTBL2;

이렇게 하면, id 열의 값이 1부터 차례로 증가하는 것을 확인할 수 있을 것이다.

입력한 내용을 최종적으로 확정하고 싶다면, COMMIT; 명령을 실행한다.




반응형