SELECT INTO
- 새로운 테이블을 만들고 해당 조회 결과를 테이블에 행으로 삽입한다.
- SELECT INTO 문을 실행하려면 CREAT TABLE 권한이 있어야 한다.
- 사용 구문은 다음과 같다.
SELECT < select_list > INTO new_table FROM { < table_source> } [, ...n] WHERE < search_condition>
- new_table : 데이터베이스 내에 존재하지 않는 새로운 이름이어야 한다.
- select_list : 열 이름 또는 열 별칭을 사용해야 한다.
- search_condition : 만약 해당 조건이 실패하면(FALSE) 데이터 없이 테이블 구조만 만들어진다.
- 개념도는 다음과 같다.
왼쪽 테이블에서 name, reg_date 열 값을 추출하고, reg_date 열의 년도만으로 reg_year 이라는 새로운 열을 만든 후 새로운 테이블 Temp1에 삽입한다.
이를 쿼리로 표현하면 다음과 같다.
설명은 위의 개념도 아랫부분을 참조하면 된다.
INSERT SELECT
- 조회 결과를 기존의 테이블에 누적하여 삽입시켜 준다.
- 사용 구문은 다음과 같다.
INSERT [INTO] existing_table SELECT < select_list> FROM { < table_source > } [ , ...n] WHERE <search_condition>
- existing_table : 데이터베이스 내에 이미 존재하는 기존의 테이블 이름이어야 한다.
- select_list : 데이터 형식은 existing_table의 열들의 데이터 형식과 호환성이 잇어야 한다.
- existing_table에는 있으나 select_list에서 생략되 열에는 기본 값이 설정되어 있거나 NULL을 허용해야 한다.
- 개념도는 다음과 같다.
조회 결과, Table1 테이블로부터 추출된 결과 집합(id가 2 이하인 행들의 이름)이 Temp1 테이블에 있는 기존의 행들에 누적되어 삽입된다.
이를 쿼리로 나타내면 다음과 같다.
설명은 위를 참조하도록 한다.
현재 Temp1 테이블의 상태이다.
SELECT 문으로 인해 abcdef, abc_def 데이터가 삽입되는데 reg_year는 기본값이 지정되어 있지 않고 NULL이 허용되기 때문에 NULL 값이 삽입된다.
'Study > 데이터 베이스' 카테고리의 다른 글
[DBMS 강의 - 14] 데이터 수정 (UPDATE, DELETE) (0) | 2014.04.28 |
---|---|
[DBMS 강의 - 13] 데이터 삽입 (INSERT) (0) | 2014.04.28 |
[DBMS 강의 - 12] 집계 연산자 (0) | 2014.04.28 |
[DBMS 강의 - 11] GROUP BY / HAVING (0) | 2014.04.27 |
[DBMS 강의 - 10] 함수 (0) | 2014.04.27 |