Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 자바
- 스프링부트 도커 배포
- 삼각형의 완성조건
- 오름차순 정렬
- 스택
- 이진수 변환
- 큐
- java
- 알고리즘
- Stack
- 프로그래머스 문자열 정렬
- lv2
- Lv1
- 버퍼
- lv0
- 프로그래머스 풀이
- 백준 N과 M 자바
- SWEA
- StringTokenizer
- 백준
- 자바
- 클라이언트
- COS Pro
- index of
- Programmers
- Queue
- 스프링부트 도커로 배포
- 스프링부트 도커
- 프로그래머스
- 문자열
Archives
- Today
- Total
mun dev
[SQL] 서브 쿼리 활용(INSERT, UPDATE, DELETE, MERGE) 본문
1. 서브쿼리 사용하여 데이터 입력
- emp테이블의 구조만 가져와서 emp2 테이블을 생성
create table emp2
as
select *
from emp
where 1 = 2;
values
절에 values대신 입력하고자 하는 서브 쿼리문을 작성- 부서번호가 10번인 사원들의 데이터를 emp2 테이블에 입력하는 것
insert into emp2(empno, ename, sal, deptno)
select empno, ename, sal, deptno
from emp
where deptno = 10;
2. 서브쿼리를 사용하여 데이터 수정하기
- 직업이 SALESMAN인 사원들의 월급을 ALLEN의 월급으로 변경
- SET절에 서브쿼리를 사용하여 직업이 SALESMAN인 사원들의 월급을 ALLEN월급으로 갱신
update emp
set sal = (select sal
from emp
where ename = 'ALLEN' )
where job = 'SALESMAN';
- update문은
모든 절
(update, set, where)에서 서브쿼리를 사용할 수 있음
update emp
set(sal, comm) = (select sal, comm
from emp
where ename = 'ALLEN' )
where ename = 'SCOTT';
3. 서브쿼리를 사용하여 데이터 삭제하기
- SCOTT보다 더 많은 월급을 받는 사원들을 삭제
delete from emp
where sal > (select sal
from emp
where ename = 'SCOTT');
4. 서브쿼리를 사용하여 데이터 합치기
사원 테이블을 이용해 SUMSAL 컬럼의 데이터를 부서 테이블의 부서 번호별 토탈 월급으로 갱신
using
절에 서브쿼리를 사용해 출력하는 데이터 dept 테이블을 mergemerge into dept d using (select deptno, sum(sal) sumsal from emp group by deptno) v on (d.deptno = v.deptno) when matched then update set d.sumsal = v.sumsal;
'DB' 카테고리의 다른 글
[PL SQL] CSV 파일로 데이터 삽입하기 (0) | 2024.03.29 |
---|---|
[DB] 락(LOCK)이란? (1) | 2024.02.06 |
[DB] 데이터베이스 기초 개념 및 정리 (0) | 2024.02.01 |
[SQL] Join 이란, Join의 종류, inner join과 outer join의 차이점 (0) | 2024.01.22 |
[DB] DDL, DML, DCL 종류 및 개념 (0) | 2024.01.19 |