1. insert
암시적(열 리스트에서 열을 생략)
INSERT INTO departments (department_id, department_name) VALUES (30, 'Purchasing');
명시적(values절에서 null키워드를 지정)
INSERT INTO departments VALUES (100, 'Finance', NULL, NULL)
특정 날짜 및 시간 값 삽입
INSERT INTO employees
VALUES (114, 'Den', 'Raphealy', 'DRAPHEAL', '515.127.4561',
TO_DATE('FEB 3, 1999', 'MON DD, YYYY'), 'SA_REP', 11000, 0.2, 100, 60);
다른 테이블에서 행 복사
insert into sales_reps(id, name, salary, commission_pct)
select employee_id, last_name, salary, commission_pct
from employees
where job_id like '%REP%';
**values절을 사용하지 않는다.
insert 절의 열 개수와 subquery의 열 개수를 일치시킨다.
다른 테이블을 기반으로 행 갱신
UPDATE copy_emp
SET department_id = (SELECT department_id
FROM employees
WHERE employee_id = 100)
WHERE job_id = (SELECT job_id
FROM employees
WHERE employee_id = 200);
테이블의 행 삭제
- 특정행 삭제
DELETE FROM departments WHERE department_name = 'Finance';
- where절을 생략하면 테이블의 모든 행이 삭제된다.
DELETE FROM copy_emp;
truncate문
테이블은 빈 상태로, 테이블 구조는 그대로 남겨둔 채 테이블에서 모든 행을 제거한다.
TRUNCATE TABLE copy_emp;
테이블이 참조 무결성 제약 조건의 상위 요소인 경우 해당 테이블을 truncate할 수 없습니다. TRUNCATE 문을 실행하기 전에 제약 조건을 비활성화해야 합니다.
ROLLBACK 또는 COMMIT를 실행하는 경우에만 Lock이 해제됩니다.