DML
명령어 | 설명 |
---|---|
INSERT | 테이블에 새로운 행을 삽입한다. |
UPDATE | 테이블에 있는 행의 내용을 갱신한다. |
DELETE | 테이블의 행을 삭제한다. |
트랜잭션(transaction)
INSERT
INSERT INTO 테이블 이름 [(열 이름 1, 열 이름 2, ...)]
VALUES (데이터 값1, 데이터 값 2, ...);
COMMIT;
departments 테이블에 department_id가 271, department_name이 ‘Sample_Dept’, manager_id가 200, location_id가 1700인 행을 삽입하기
INSERT INTO departments (department_id, department_name, manager_id, location_id)
VALUES
(271, 'Sample_Dept', 200, 1700);
COMMIT;
departments 테이블에 department_id가 272, department_name이 ‘Sample Dept’, manager_id가 200, location_id가 1700인 행을 삽입하기
INSERT INTO departments
VALUES
(272, 'Sample_Dept', 200, 1700);
COMMIT;
INSERT 명령어와 UPDATE 명령어로 데이터를 삽입하거나 갱신할 때는 입력되는 데이터의 수서, 데이터 타입과 제약 조건(NOT NULL, UNIQUE) 등에 주의해야 함
INSERT INTO departments
VALUES
(272, Sample_Dept, 200, 1700);
// INSERT 오류 발생
// Sample_Dept를 입력한 department_name의 데이터 타입이 VARCHAR2이므로 문자가 입력되어야 함
UPDATE 테이블 이름
SET 열 이름 1 = 데이터 값 1 [, 열 이름 2 = 데이터 값 2, ...]
[WHERE 조건식];
UPDATE departments
SET manager_id = 201,
location_id = 1800
WHERE department_name = 'Sample_Dept';
COMMIT;
UPDATE departments
SET (manager_id, location_id) = (SELECT manager_id, location_id
FROM departments
WHERE department_id = 40)
WHERE department_name = 'Sample_Dept';
COMMIT;
UPDATE departments
SET department_id = null
WHERE department_name = 'Sample_Dept';
// departments 데이터의 department_id는 기본키이므로 null 값을 가질 수 없는데
// null 값으로 갱신하려 하면 오류가 발생됨
DELETE [FROM] 테이블 이름
[WHERE 조건식];
COMMIT;
DELETE FROM departments
WHERE department_name = 'Sample_Dept';
COMMIT;
DELETE FROM departments
WHERE department_id IN (SELECT department_id
FROM departments
WHERE department_name = 'Sample_Dept');
COMMIT;