SQL :: Oracle :: DML

김병철·2022년 9월 14일
0

SQL

목록 보기
6/11

DML

DATA MANIPULATION LANGUAGE (데이터 조작 언어)

테이블에 새로운 데이터를 삽입(INSERT)하거나
기존의 데이터를 수정(UPDATE)하거나 삭제(DELETE)하는 구문

INSERT INTO

INSERT INTO 테이블명 VALUES (1,2, ...);

해당 테이블의 모든 컬럼에 대해 추가할 값을 직접 제시하여 한 행을 INSERT할 때 사용
컬럼의 순서, 자료형, 개수를 맞추어 나열해야 한다.

  • 예시 :
INSERT INTO EMPLOYEE 
VALUES(999,'김추석','990909-1122333','kim@naver.com'
        ,'01011112222','D1','J5','S6',2000000,0.2,100,SYSDATE,NULL,DEFAULT);

INSERT INTO 테이블명(컬럼명1,컬럼명2,컬럼명3) VALUES(1,2,3);

해당 테이블의 특정 컬럼만 선택해서 그 컬럼에 추가할 값만 제시할 때 사용
선택이 안 된 컬럼은 NULL값이 들어가고, DEFAULT가 설정되면 기본값이 들어간다.
단, NOT NULL 제약조건이 걸려있다면 반드시 값을 입력해주어야 한다.


INSERT INTO 테이블명(서브쿼리);

VALUES()로 값을 직접 가입하는 것이 아닌 서브쿼리로 조회한 결과를 INSERT하는 구문
여러 행을 한 번에 INSERT 가능

INSERT INTO EMP_01 (
    SELECT EMP_ID,EMP_NAME,DEPT_TITLE
    FROM EMPLOYEE,DEPARTMENT
    WHERE DEPT_CODE = DEPT_ID(+)
);

INSERT ALL

INSERT ALL
INTO 테이블명1 VALUES(컬럼명,컬럼명,..)
INTO 테이블명2 VALUES(컬럼명,컬럼명,...)
서브쿼리;

두 개 이상의 테이블에 각각 INSERT할 때 사용


INSERT ALL
    WHEN 조건1 THEN
        INTO 테이블명1 VALUES(컬럼명,컬럼명,..)
    WHEN 조건2 THEN
        INTO 테이블명2 VALUES(컬럼명,컬럼명, ..)
    서브쿼리

조건에 맞는 값만 넣어준다.


UPDATE

테이블에 기록된 기존의 데이터를 수정하는 구문

UPDATE 테이블명
SET 컬럼명 = 바꿀값
   ,컬럼명 = 바꿀값
   ,컬럼명 = 바꿀값
   ,... (여러개의 컬럼 동시에 변경 가능( , 로 나열해야한다.)
WHERE 조건;

UPDATE(SUBQUERY)

서브쿼리를 수행한 결과값으로 기존의 값을 변경

  • CREATE : 서브쿼리를 수행한 결과를 테이블에 넣어 만든다.
  • INSERT : 서브쿼리를 수행한 결과를 해당 테이블에 넣는다.
UPDATE 테이블명
    SET 컬럼명 = (서브쿼리)
    WHERE 조건; (생략 가능)
  • 예시 :
UPDATE EMP_SALARY
SET DEPT_CODE = (SELECT DEPT_CODE
                FROM EMP_SALARY
                WHERE EMP_NAME='선동일')
WHERE EMP_NAME='방명수';

DELETE

테이블에 기록된 데이터를 '행'단위삭제하는 구문

DELETE FROM 테이블명
WHERE 조건; --WHERE절은 생략이 가능하지만 생략시에 모든 행이 삭제된다.
  • 예시 :
DELETE FROM EMP_COPY
WHERE EMP_NAME='노옹철';

TRUNCATE

테이블의 전체 행을 모두 삭제할 때 사용하는 구문
DELETE 구문보다 속도가 빠르다
ROLLBACK이 되지 않는다.

TRUNCATE TABLE 테이블명;
profile
keep going on~

0개의 댓글