song's note

[SQL전문가 가이드] 2과목 3장 관리구문 DDL, DML, DCL, TCL 본문

DB/SQL

[SQL전문가 가이드] 2과목 3장 관리구문 DDL, DML, DCL, TCL

songxx 2022. 4. 10. 23:27

DML INSERT DELETE UPDATE

데이터를 입력, 수정 삭제할 수 있음

TCL

변경된 데이터를 반영하거나 취소

DDL

테이블 구조를 생성, 변경, 삭제

DCL

데이터에 관한 권한을 부여하거나 회수 

 

DML (Data Manipulation Language) 

자료들을 테이블이 입력, 수정, 삭제할 때 사용됨 

1. INSERT 

1-1. 단일행 INSERT 

VALUES 절을 포함하며 한번에 한 행만 입력된다.

컬럼명의 기술 순서는 테이블에 정의된 컬럼 순서와 동일하지 않아도 됨

INTO절에 기술되지 않은 컬럼 값은 자동으로 NULL 값이 입력된다. (PK 제약이나 NOT NULL 제약이 있는 경우 에러 발생)

INSERT INTO EMP (NAME, AGE)VALUES ('홍길동', 27);


# 값을 모르는 경우 ''로 넣거나 NULL지정이 가능하다 
INSERT INTO EMP VALUES ('호빵맨', NULL) ;

INSERT 절에 컬럼명을 직접 쓰지 않는 경우에는 테이블에 정의된 컬럼 순서대로 VALUES절을 작성해야 함

✅ 기존 컬럼이 삭제되거나 새로운 컬럼이 추가되는 경우를 대비하여 INTO절에 컬럼명을 기술하는 SQL문 작성이 권장됨

 

1-2. 서브쿼리를 이용한 다중 행  INSERT문

서브쿼리의 결과가 여러 행이면 한번에 여러 건의 데이터가 입력된다. 서브쿼리의 결과 컬럼 갯수가 INTO절의 컬럼 갯수와 일치해야함

 

2. UPDATE

입력한 데이터를 잘 못 입력하였거나 변경이 필요한 경우 

UPDATE 테이블명
SET 변경대상컬럼 = 변경 값 
WHERE  조건  ;

UPDATE EMP 
SET AGE = 20 
WHERE 이름 = 홍길동 ;

WHERE절이 없는 경우 해당 컬럼 값이 모든 데이터에 적용된다 . 

전에 UPDATE문을 사용하다가 큰일날 뻔한 적이 생각난다 . . 

✅ UPDATE 문 사용시, 꼭 WHERE문 확인하고 하기  

 

3. DELETE 

테이블에 저장된 데이터가 더이상 필요없어 데이터 삭제를 하는 경우

DELETE (FROM) 테이블명
WHERE 조건 ;


DELETE FROM EMP; 
DELETE EMP;

FROM 은 생략이 가능하며, WHERE 절을 사용하지 않으면 테이블 전체가 삭제됨 

 

4. MERGE 

새로운 행을 입력하거나 기존 행을 수정하는 작업을 한번에 할 수 있음