DML(Data Manipulation Language)

9mond·2023년 7월 25일
0
post-thumbnail
post-custom-banner

1. 데이터 조작어(DML)

  • Data Manipulation Language

  • 데이터 조회 및 변형을 위한 명령어

  • select, update, insert, delete

  • insert into 테이블명 values(값1, 값2, ..);
    또는
    insert into 테이블명 (컬럼1, 컬럼2, ..)
    values (값1, 값2, ..);

/*
 *  10, 기획실, 서울, 홍길동
 *  20, 전산실, 부산, 이순신
 *  30, 영업부, 광주, null
 */
INSERT INTO SAMPLE s values(10, '기획실', '서울', '홍길동');
INSERT INTO SAMPLE s values(20, '전산실', '부산', '이순신');
INSERT INTO SAMPLE s values(30, '영업부', '광주', null);
  • update 테이블명 set 컬럼1 = 값1, 컬럼2 = 값2, ...
    where 조건;
    -> where 조건 필수!
/*
 * update
 * - 부서번호가 30번 부서를 50번으로 변경
 */
UPDATE	 sample SET DEPTNO  = 50
WHERE 	DEPTNO = 30;
SELECT * FROM SAMPLE s ;
;
UPDATE	SAMPLE SET DEPTLOC  = '인천'
WHERE 	DEPtNAME  = '영업부'
;
  • delete (from) 테이블명 where 조건;
    -> where 조건 필수!
DELETE sample WHERE deptname = '영업부'
;

2. DROP vs Truncate vs Delete

  • Drop : 테이블의 존재 자체가 삭제

  • Truncate : 데이터만 통으로 삭제
    -> 테이블이 삭제되는 명령어는 아니고 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어
    -> 테이블을 Drop 했다가 Create 한다.
    -> 모든 행을 삭제하는 가장 빠르고 효율적인 방법

  • Delete : 데이터 골라서 삭제
    -> delete는 truncate처럼 테이블 구조는 남기고 안에 데이터만 삭제한다.
    -> delete는 부분삭제 가능
    -> 내부방식이 다르다.(Truncate는 DDL, Delete는 DML) 한줄 한줄 삭제한다.
    -> Truncate와 속도차이가 많이 난다. 복구 의지가 없을 때 Truncate 사용

Drop					Truncate				DELETE

-DDL					-DDL				-DML
-Rollback 불가능			-Rollback 불가능		-Commit 이전에 Rollback 가능
-Auto Commit			-Auto Commit		-AutoCommit
-테이블 자체를 완전 삭제	    -테이블을 최초 생성된	-데이터만 삭제
						-초기 상태로
-로그 안남음				-로그 안남음			-로그 남음
profile
개발자
post-custom-banner

0개의 댓글