DML (Data Manipulation Language) 데이터 조작 언어

김민석·2023년 8월 28일
0

테이블에 값을 삽입하거나(INSERT), 수정하거나(UPDATE), 삭제(DELETE)하는 구문

  1. INSERT
  • 테이블에 새로운 행을 추가하는 구문
  • 작성법
INSERT INTO 테이블명 VALUES(데이터1, 데이터2, ...);
INSERT INTO 테이블명(컬럼명1, 컬럼명2, ...) VALUES(데이터1, 데이터2, ...);
  • INSERT시 VALUES 대신 서브쿼리 사용 가능
    이 경우 VALUES 생략
INSERT INTO 테이블명 (서브쿼리);
  1. UPDATE
  • 테이블에 기록된 컬럼의 값을 수정하는 구문
  • 작성법
UPDATE 테이블명 SET 컬럼명1 = 바꿀값1, 컬럼명2 = 바꿀값2 ... [WHERE 컬럼명 비교연산자 비교값];
  • 조건절을 설정하지 않고 구문을 실행하면 모든 행의 컬럼 값이 변경된다.
  • UPDATE시에도 서브쿼리 사용 가능
UPDATE 테이블명 SET (컬럼명1, 컬럼명2, ...) = (서브쿼리);
  1. MERGE (참고)
  • 구조가 같은 두 개의 테이블을 하나로 합치는 기능
  • 테이블에서 지정하는 조건의 값이 존재하면 UPDATE 조건의 값이 없으면 INSERT된다.
    EX)
MERGE INTO EMP_M01 USING EMP_M02 ON(EMP_M01.EMP_ID = EMP_M02.EMP_ID)
WHEN MATCHED THEN -- 같은 사번이 존재하면 UPDATE
UPDATE SET
EMP_M01.EMP_NAME = EMP_M02.EMP_NAME,
EMP_M01.EMP_NO = EMP_M02.EMP_NO,
EMP_M01.EMAIL = EMP_M02.EMAIL,
EMP_M01.PHONE = EMP_M02.PHONE,
EMP_M01.DEPT_CODE = EMP_M02.DEPT_CODE,
EMP_M01.JOB_CODE = EMP_M02.JOB_CODE,
EMP_M01.SAL_LEVEL = EMP_M02.SAL_LEVEL,
EMP_M01.SALARY = EMP_M02.SALARY,
EMP_M01.BONUS = EMP_M02.BONUS,
EMP_M01.MANAGER_ID = EMP_M02.MANAGER_ID,
EMP_M01.HIRE_DATE = EMP_M02.HIRE_DATE,
EMP_M01.ENT_DATE = EMP_M02.ENT_DATE,
EMP_M01.ENT_YN = EMP_M02.ENT_YN
WHEN NOT MATCHED THEN -- 같은 사번이 존재하지 않으면 INSERT
INSERT VALUES (EMP_M02.EMP_ID, EMP_M02.EMP_NAME, EMP_M02.EMP_NO,
               EMP_M02.EMAIL, EMP_M02.PHONE, EMP_M02.DEPT_CODE,
               EMP_M02.JOB_CODE, EMP_M02.SAL_LEVEL, EMP_M02.SALARY,
               EMP_M02.BONUS, EMP_M02.MANAGER_ID, EMP_M02.HIRE_DATE,
               EMP_M02.ENT_DATE, EMP_M02.ENT_YN);
  1. DELETE
  • 테이블의 행을 삭제하는 구문
  • 작성법
DELTE FROM 테이블명 WHERE 조건설정;
  • WHERE 조건을 설정하지 않으면 모든 행 삭제
  • SELECT문과 유사하다

0개의 댓글