요즘 서브쿼리 쓸일이 계속 생기길래,,, 기초다시 한번 훑어보기
- 서브쿼리를 사용하여 insert 를 여러개 동시에 해보기
INSERT INTO emp2(empno, ename, sal, deptno)
SELECT empno, ename, sal, deptno
FROM emp
WHERE deptno=10;
> deptno 가 10인 emp의 테이블 내 데이터가 emp2에 insert into 된다
> insert into는 하나씩 입력되었지만 여러개의 행을 동시에 넣고 싶다면 이렇게 서브쿼리를 이용해서
where 조건문을 사용해 동시에 넣을 수 있움
- 서브쿼리를 사용해 데이터 수정하는 법
UPDATE emp
SET sal = (SELECT sal
FROM emp
WHERE ename='ALLEN')
WHERE job = 'SALESMAN';
> 직업이 SALESMAN인 사람을 WHERE 절로 조건을 걸어주고
> 서브쿼리를 사용하여 emp의 ALLEN이 이름인 sal를 조회한 후에
> 그거를 emp 의 sal 로 모두 업데이트 해줌
UPDATE emp
SET (sal, comm) = (SELECT sal, comm FROM emp WHERE ename='ALLEN')
WHERE ename='SCOTT';
> 물론 여러개 컬럼값을 동시에도 가능
- 서브쿼리 사용해서 데이터 삭제하기
DELETE FROM emp
WHERE sal > (SELECT sal FROM emp WHERE ename='SCOTT');
> 서브쿼리 사용해서 SCOTT의 이름을 가진 사람의 sal를 조회해서
> 그것보다 큰 sal의 데이터를 emp 테이블에서 삭제
DELETE FROM emp m
WHERE sal > (SELECT avg(sal) FROM emp s WHERE s.deptno = m.deptno);
> sal 이 해당 사원이 속한 부서 번호의 평균 월급보다 크면 삭제하도록 하는
> 같은 테이블 내에서 일어날때는 별칭 사용해서 해아함
'데이터베이스 > SQL' 카테고리의 다른 글
SQLD 를 위한 SQL기본문법 정리 7 - TCL(Transaction Control Language) (0) | 2024.02.15 |
---|---|
SQLD 를 위한 SQL기본문법 정리 6 - Function_2 (0) | 2024.02.14 |
SQLD 를 위한 SQL기본문법 정리 6 - Function_1 (0) | 2024.02.14 |
SQLD 를 위한 SQL기본문법 정리 5 - DDL, 테이블 변경 (0) | 2024.02.14 |
SQLD 를 위한 SQL기본문법 정리 4 - DDL, 테이블 생성 (0) | 2024.02.13 |