© Tama66, 출처 Pixabay
DML(Data Manipulation Language)
· INSERT
- 컬럼 이름, 순서 등을 지정하지 않음. 테이블 생성시 정의한 순서에 따라 값 지정
INSERT INTO dept VALUES (777, 'MARKETING', NULL);
- 컬럼이름을 넣어 준다. 지정되지 않은 컬럼은 NULL을 자동을 입력
INSERT INTO dept(dname, deptno) VALUES ('MARKETING', 777);
- Subquery 이용 : 타 테이블로부터 데이터 복사(테이블은 이미 존재하여야 한다.)
INSERT INTO deptusa SELECT deptno, dname FROM dept WHERE country = 'USA';
· UPDATE
- 조건을 만족하는 레코드를 변경(ex 10번 부서원의 월급을 100 인상하고 수수료를 0으로 변경)
UPDATE emp SET sal = sal + 100, comm = 0 WHERE deptno =10;
- WHERE 절이 생략되면 모든 레코드에 적용(ex 모든 직원의 월급 10% 인상)
UPDATE emp SET sal = sal * 1.1;
- Subquery를 이용한 변경(ex 담당업무가 'SCOTT'과 같은 사람들의 월급을 부서 최고액으로 변경)
UPDATE emp SET sal = (SELECT MAX(sal) FROM emp)
WHERE job = (SELECT job FROM emp WHERE ename='SCOTT');
· DELETE
- 조건을 만족하는 레코드 삭제(ex 이름이 'SCOTT'인 사원 삭제)
DELETE FROM emp WHERE ename = 'SCOTT';
- 조건이 없으면 모든 레코드가 삭제 되기 때문에 주의!!(ex 모든 직원 정보 삭제)
DELETE FROM emp;
- Subquery를 이용한 DELETE
DELETE FROM emp
WHERE deptno = (SELECT deptno FROM dept WHERE dname = 'SALES');
※ DELETE와 TRUNCATE의 차이점
- Delete는 Rollback이 가능하지만 대량의 log를 유발하므로 Truncate보다 느리다.
TCL(Transaction Control Language)
개념 : DB에서 하나의 작업으로 처리되는 논리적 작업 단위 (계좌이체)
구성 : DML의 집합 / DDL이나 DCL은 한 문장이 트랜잭션으로 처리되므로 자동으로 COMMIT
종류 : COMMIT, ROLLBACK, SAVEPOINT
VIEW
· 용도
- 보안강화
- 데이터 복잡성을 단순화
- 실제 테이블과 응용프로그램의 분리
CREATE VIEW emp_10 as SELECT * FROM emp where deptno = 10;
SELECT * FROM emp_10 WHERE salary > 3000;
DROP VIEW emp_10;
CREATE OR REPLACE VIEW v1 AS SELECT DISTINCT empno FROM emp;
고생했숨당~
'Learning > SQL' 카테고리의 다른 글
8. DDL & DCL (0) | 2021.07.11 |
---|---|
7. SUBQUERY (0) | 2021.07.11 |
6. GROUP & AGGREGATION (0) | 2021.07.11 |
5. Join (0) | 2021.07.11 |
4. Single-Row-Funtion (0) | 2021.07.11 |