민규의 흔적

[오라클 DB] 데이터 조작어(DML) - INSERT, DELETE, UPDATE문 본문

데이터베이스

[오라클 DB] 데이터 조작어(DML) - INSERT, DELETE, UPDATE문

민규링 2023. 10. 21. 23:45

데이터 조작어(DML) 

 

DB 스키마 내에 데이터를 검색, 삽입, 삭제, 수정하는 역할을 수행하는데 사용되는 언어이다.

 


 

INSERT문

 

릴레이션에 튜플을 삽입한다.

참조되는 릴레이션에 튜플이 삽입되는 경우에는 참조 무결성 제약조건의 위배가 발생하지 않으나,

참조하는 릴레이션에 튜플이 삽입되는 경우에는 참조 무결성 제약조건을 위배할 수 있다.

 

릴레이션에 한 번에 한 튜플씩 삽입하는 것과 한 번에 여러 개의 튜플을 삽입할 수 있는 것으로 구분한다.

 

릴레이션 한 번에 한 튜플씩 삽입하는 INSERT문 포맷

INSERT INTO 릴레이션(애트리뷰트1, ... , 애트리뷰트n) VALUES (값1, ... , 값n);

-> 애트리뷰트 리스트를 생략하면 릴레이션을 정의할 때 지정한 속성의 순서대로 값이 삽입된다.

INSERT INTO 릴레이션 VALUES (값1, ... , 값n);

-> 값1부터 값n까지 차례로 릴레이션의 첫 번째 애트리뷰트부터 순서대로 기입된다.

 

 

 

질의 1. 고객 릴레이션에 (strawberry, 최유경, 30, vip, 공무원, 100) 튜플을 삽입하는 INSERT문을 작성하시오.

 

결과 릴레이션 1

 

INSERT INTO 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
VALUES ('strawberry', '최유경', 30, 'vip', '공무원', 100);

 

 

질의 2. DEPARTMENT 릴레이션에 (5, 연구, NULL) 튜플을 삽입하는 INSERT문을 작성하시오.

 

결과 릴레이션 2

 

INSERT INTO DEPARTMENT VALUES (5, '연구', '');

 

 

 

릴레이션에 한 번에 여러 개의 튜플들을 삽입하는 INSERT문

 

 

질의 3. EMPLOYEE 릴레이션에 급여가 3000000 이상인 사원들의 이름, 직급, 급여를 검색하여 HIGH_SALARY 라는 릴레이션에 삽입하는 INSERT문을 작성하시오.

 

결과 릴레이션 3

 

HIGH_SALARY 릴레이션 생성

CREATE TABLE HIGH_SALARY(
         ENAME     char(10),
         TITLE        char(10),
         SAL           number
);

 

INSERT INTO HIGH_SALARY(ENAME, TITLE, SAL)
SELECT EMPNAME, TITLE, SALARY
FROM EMPLOYEE
WHERE SALARY >= 3000000;

 

 

 

 


 

 

UPDATE문

 

한 릴레이션에 들어 있는 튜플들의 애트리뷰트 값들을 수정한다.

기본 키나 외래 키에 속하는 애트리뷰트의 값이 수정되면 참조 무결성 제약조건을 위배할 수 있다.

 

 

질의 4. DEPARTMENT 릴레이션에 5번 부서를 3층으로 수정하는 UPDATE문을 작성하시오.

 

결과 릴레이션 4

 

UPDATE DEPARTMENT
SET FLOOR = 3
WHERE DEPTNO = 5;

 

 

 


 

DELETE문

 

한 릴레이션으로부터 한 개 이상의 튜플들을 삭제한다.

참조되는 릴레이션의 삭제 연산의 결과로 참조 무결성 제약조건이 위배될 수 있으나, 참조하는 릴레이션에서 튜플을 삭제하면 참조 무결성 제약조건을 위배하지 않는다.

 

 

 

질의 5. DEPARTMENT 릴레이션에 5번 부서를 삭제하는 DELETE문을 작성하시오.

 

 

결과 릴레이션 5

 

DELETE
FROM DEPARTMENT
WHERE DEPTNO = 5;