SQL

[ORACLE] 2. DML(INSERT, DELETE, UPDATE)

킹왕짱지지 2024. 4. 4. 15:49

INSERT

-- 묵시적 방법: 컬럼 이름. 순서 지정하지 않음. 테이블 생성시 정의한 순서에 따라 값 지정
INSERT INTO dept VALUES (777, 'MARKETING', NULL);

-- 명시적 방법: 컬럼 이름 명시적 사용. 지정되지 않은 컬럼 NULL/Default 자동 입력
INSERT INTO dept(dname, deptno) VALUES ('MARKETING', 777);

--  Subquery 이용: 타 테이블로부터 데이터 복사 (테이블은 이미 존재하여야함)
INSERT INTO deptusa
SELECT deptno, dname FROM dept WHERE country = 'USA';

 

UPDATE

-- 조건을 만족하는 레코드를 변경
UPDATE emp SET sal = sal + 100, comm = 0
WHERE deptno = 10;

-- WHERE 절이 생략되면 모든 레코드에 적용
UPDATE emp SET sal = sal * 1.1;

-- Subquery를 이용한 변경
UPDATE emp SET sal = (SELECT MAX(sal) FROM emp)
WHERE job = (SELECT job FROM emp WHERE 
ename='SCOTT');

 

DELETE

- 조건을 만족하는 레코드 삭제
DELETE FROM emp WHERE ename = 'SCOTT';

-- 조건이 없으면 모든 레코드 삭제 (주의!)
DELETE FROM emp;

-- Subquery를 이용한 DELETE
DELETE FROM emp WHERE deptno = 
  (SELECT deptno FROM dept WHERE dname = 'SALES');