2021. 4. 6. 20:48ㆍOracle 공부
이번에는 INSERT 에 대해서 알아 봅시다.
그 전에, 잠깐 테이블의 구조를 확인하는 방법을 알아보고 갑시다.
DESC 테이블명
이렇게, 해당 테이블에 속성(column)들과 널(공백)을 포함할 것인지 여부.
그리고 값의 유형은 어떤식으로 할 것인지 확인 할 수 있습니다.
NUMBER는 숫자를 의미 하며 소괄호에 있는 숫자는 자리수를 의미합니다. (4자리)
VARCHAR2는 가변성문자를 의미 하며, 소괄호에 있는 숫자는 BYTE를 의미합니다.
INSERT
insert 는 테이블에 행을 추가하는 기능 입니다.
- INSERT INTO 테이블명(속성) VALUES(값)
INSERT INTO 를 사용할 때, 테이블의 속성을 넣어주면 되는데, 테이블의 속성을 전부 넣어줄 필요는 없습니다.
만약, 테이블의 속성의 일부에만 값을 넣어주었다면, 그 외는 NULL 로 표시가 됩니다.
※속성이 NOT NULL일 경우에는 무조건 값을 넣어주어야 합니다.
- INSERT INTO 테이블명 VALUES(값)
테이블명 우측에 속성을 명시해주지 않는다면, 해당 테이블에 속성 전부를 순서에 맞게 자동으로 가지고 있다고 생각해주면 됩니다. 그렇기 때문에, 값을 넣을때도 순서대로 전부 다(속성 전부) 작성해주면 됩니다.
- INSERT INTO 테이블명 (서브쿼리)
※ MANAGERS 테이블은 EMPLOYEES 테이블과 구조(속성)이 똑같습니다.
서브쿼리를 사용해서 값을 추가할 수도 있습니다.
테이블명 우측에 속성을 써주지 않은 형태로, 서브쿼리는 모든 속성이 일치하도록 해주면 됩니다.
서브쿼리의 WHERE절을 사용해 추가하는 데이터를 제한할 수 있습니다.
- INSERT INTO 테이블명(속성) (서브쿼리)
※ MANAGERS 테이블은 EMPLOYEES 테이블과 구조(속성)이 똑같습니다.
속성을 명시한 형태로, 명시된 속성과 서브쿼리에서 조회되는 속성이 일치되도록 해주면 됩니다.
테이블 복사
테이블의 구조를 빠르게 복사할 수 있습니다.
CREATE TABLE 테이블명 AS (서브쿼리)
서브쿼리 내부에
WHERE 1=2 -> false (테이블의 구조만 복사) 라는 뜻 입니다.
WHERE 1=1 -> true(테이블의 구조, 데이터 복사) 라는 뜻 입니다.
MANAGERS 라는 테이블을 만드는데 EMPLOYEES 테이블의 구조(속성)를 복사 합니다.
ROLLBACK
ROLLBACK은 돌아가라는 뜻으로, 데이터의 초기화를 의미합니다.
데이터를 CRUD (데이터 생성,조회,삽입,삭제)는 커밋되기 전까지는 실제로 데이터가 데이터베이스에 저장되는 게 아니라 그냥 기록을 남겨두는 것 입니다.
커밋을 해야 데이터베이스에 저장이 되는데, 커밋을 하기전에, ROLLBACK을 하면 커밋 전 데이터들이 초기화 됩니다.
※ 위에서 INSERT문을 사용해 데이터를 추가한 행들이 사라지게 됩니다.
'Oracle 공부' 카테고리의 다른 글
Day37 - 테이블 병합.MERGE (0) | 2021.04.07 |
---|---|
Day36 - 행수정.UPDATE , 행삭제.DELETE (0) | 2021.04.06 |
Day35 - 인라인 뷰 (0) | 2021.04.05 |
Day35 - 스칼라 서브쿼리 (0) | 2021.04.05 |
Day34 - 서브쿼리. 단일 행 서브쿼리. 다중 행 서브쿼리 (0) | 2021.04.02 |