오라클 SELECT INTO / INSERT INTO SELECT
SELECT INTO
쿼리 결과를 새 테이블로 만든다.
오라클에서는 CREATE TABLE 테이블명 AS SELECT * FROM 테이블명
기존에 존재하지 않는 테이블이 새로 생성된다. (일종의 뷰와 동일한 효과)
SQL - 비절차적 언어 / JAVA - 절차 언어
예제)
업무가 SALESMAN인 직원만 따로 찾아서 emp_salesman이라는 테이블을 생성해서 넣으시오.
create table emp_salesman as select * from emp where job = 'SALESMAN';
결과확인
select *
from emp_salesman;
INSERT INTO SELECT
쿼리 결과를 기존의 테이블에 추가한다 ( 기존 테이블이 존재해야함)
INSERT INTO 테이블명1 SELECT * FROM 테이블명2 WHERE 조건절...
SELECT 하는 테이블과 INSERT 하는 테이블은 동일한 구조를 가져야 함
두개의 별도 쿼리를 하나로 합침
예제)
emp 테이블에서 job이 salesman인 레코드를 찾아서 emp_salesman 테이블에 추가하시오
테이블만 존재하는 상태 즉, 내용없음
truncate table emp_salesman;
내용 확인
select * from emp_salesman;
테이블 생성
insert into emp_salesman select *from emp where job='SALESMAN';
내용 확인
select * from emp_salesman;
SELECT INTO 와 INSERT INTO SELECT 예제로 만들어진 테이블이 동일한 결과는 나오지만 만들어지는 과정이 다름
CASE... WHEN....END
SQL의 조건문 (if/switch문)에 해당
조건값에 따른 처리를 구분할 수 있다.
CASE WHEN 조건값 1 THEN ...
WHEN 조건값 2 THEN ...
ELSE...
END
예제)
emp테이블에서 직원명, ABBR_JOB을 최대 3자로 앞쪽 세 자를 소문자로 출력하고, JOB을 같이 표시하시오
select emp,ename
case
when length(emp.job) > 3 then lower(substr(emp.job, 1, 3))
when length(emp,job) <=3 then lower(emp.job)
end as abbr_job, emp.job from emp;
lower (전부 소문자) / substr (첫자부터 시작해서 3자리까지)
'Study > 데이터베이스' 카테고리의 다른 글
오라클 서브쿼리, 집합연산 (0) | 2018.03.29 |
---|---|
오라클 LIKE 검색, NULL값, GROUP BY/HAVING (0) | 2018.03.20 |
오라클 조인 종류 및 개념, 별명 (ALIAS) (0) | 2018.03.13 |
오라클 중복제거 연산자, 논리연산자 (0) | 2018.03.12 |
DBMS의 기초 (0) | 2018.03.06 |
댓글