-
SQL_Sub Query_Table 만들기Data Base_Oracle/SQL 2020. 1. 7. 23:17
Sub Query_Table 만들기
DML작업시에는 항상 백업 Table을 생성해두는 것이 좋음
§ 백업 테이블 만드는 형식
Full Backup 완전 백업
[ SQL> create table 백업table명 as select * from 원본table명; ]
Partial Backup 부분 백업
[ SQL> create table 백업table명 as select * from 원본table명 where 조건식; ]
Schema Backup 테이블 구조 백업
테이블의 구조만 가져오고 데이터는 백업하지 않는 형식
[ SQL> create table 백업table명 as select 필드명1,필드명2
from 원본table명 where 1=0; ]
※ where 조건식이 거짓이 되도록 설정§ 데이터가 비어 있는 것을 확인하는 방법
[ SQL> select * from table명; ]
or [ SQL> count(*) from table명; ]# 예제
{ 문제 _ 백업 활용 }
▷ emp 테이블에서 부서별로 부서번호, 인원수, 평균급여, 급여합계,
최소급여, 최대급여를 구하고 이 결과를 저장할 백업 Table 생성
백업 Table 이름은 emp_deptno로 함{ 에러 }
▶ [ SQL> create table emp_deptno as select deptno, count(), avg(sal), sum(sal), min(sal), max(sal) from emp group by deptno;
1행에 오류:
*ORA-00998: 이 식은 열의 별명과 함께 지정해야 합니다 ]※ 그룹함수는 가상필드이며 가상필드는 백업테이블의 실질적인 필드로 복사되지 않음
→ 가상필드에 별칭을 부여해서 일반필드로 만들어줘야 함{ 풀이 }
▶▶ [ SQL> create table
emp_deptno(deptno, e_count, e_avg, e_sum, e_min, e_max)
as select deptno, count( * ), avg(sal), sum(sal), min(sal), max(sal) from emp
group by deptno; ]이름 널? 유형 DEPTNO NUMBER(2) E_COUNT NUMBER E_AVG NUMBER ... ... ※ 가상필드와 별칭은 1:1대응관계로 순서와 개수가 일치해야함
※ 테이블로 저장하는 경우에는 하드디스크에 저장이 됨
↔ save로 위와 같은 정보를 조회하는 문장만 txt파일로 저장
→ sql 문장으로 저장해서 호출하는 편이 메모리 사용 부담을 줄여줌※ create ~ 와 select~ 가 같이 사용되었기 때문에 서브 쿼리의 한 종류로 보기도 함
DDL_Create에서의 서브 쿼리 활용을 살펴보았습니다.
원본 테이블에서 원하는 형태로 백업 테이블을 생성하는 것은
기존의 테이블에서 원하는 데이터만 조회해서 새로운 테이블을 만드는 것과 같다고 할 수 있습니다.
'Data Base_Oracle > SQL' 카테고리의 다른 글
SQL_ROLLBACK (0) 2020.01.08 SQL_Sub Query_Update & Delete (0) 2020.01.08 SQL_Sub Query Pattern_Inline View (0) 2020.01.07 SQL 다중 행 Sub Query_EXISTS 연산자 (0) 2020.01.07 SQL 다중 행 Sub Query_Any 연산자 (0) 2020.01.07