1. DML (DATA MANIPULATION LANGUAGE)
1. DML (DATA MANIPULATION LANGUAGE)
- DML (DATA MANIPULATION LANGUAGE) : 데이터 조작어
- 테이블의 행에 대한 삽입, 변경, 삭제 기능을 제공하는 SQL 명령
- DML 명령 실행 후 COMMIT(DML 명령의 적용) 또는 ROLLBACK 명령(DML 명령의 취소)을 실행하는 것을 권장
2. 제약조건
- PK (PRIMARY KEY) : 중복된 컬럼값 저장을 방지하기 위한 제약조건
- FK (FOREIGN KEY) : 자식테이블의 컬럼값으로 부모테이블의 컬럼값을 참조하여 저장하는 기능을 제공하는 제약조건
3. INSERT
- INSERT : 테이블에 행을 삽입하는 SQL 명령
INSERT INTO 테이블명 VALUES(값, 값, ...)
INSERT INTO 테이블명(컬럼명, 컬럼명, ...) VALUES(값, 값, ...)
INSERT INTO 테이블명 SELECT 컬럼값, 컬럼값 FROM 테이블명
- 테이블에 삽입될 행의 컬럼값은 테이블 속성에 맞게 차례대로 나열하여 저장되도록 작성
- 테이블 속성의 순서대로 자료형에 맞는 컬럼값을 생략 없이 차례대로 나열해서 전달해야만 행 삽입 처리
- 삽입행으로 전달될 컬럼값의 개수가 테이블의 컬럼 개수와 맞지 않을 경우 에러 발생
- 삽입행으로 전달될 컬럼값의 자료형이 테이블의 컬럼의 자료형과 맞지 않을 경우 에러 발생
- 삽입행으로 전달될 컬럼값이 테이블의 컬럼의 크기보다 큰 경우 에러 발생
- 테이블 컬럼에 부여된 제약 조건을 위반하는 값을 전달할 경우 에러 발생
4. UPDATE
- UPDATE : 테이블에 저장된 행의 컬럼값을 변결하는 SQL 명령
UPDATE 테이블명 SET 컬럼명=변경값, 컬럼명=변경값, ... [WHERE 조건식]
- 테이블에 저장된 행에서 WHERE 조건식의 결과가 참인 행의 컬럼값 변경
- WHERE를 생략할 경우 테이블에 저장된 모든 행의 컬럼값을 동일하게 변경 처리
- WHERE 조건식에서 사용하는 비교컬럼은 PK 제약조건이 부여된 컬럼을 이용하여 변경하는 것을 권장
- 일반적으로 PK 제약조건이 부여된 컬럼값을 변경하는 것은 비권장
- 컬럼의 변경값은 컬럼의 자료형, 크기, 제약조건이 맞는 경우에만 변경 처리
5. DELETE
- DELETE : 테이블에 저장된 행을 삭제하는 SQL 명령
DELETE 테이블명 FROM 테이블명 [WHERE 조건식]
- 테이블에 저장된 행에서 WHERE 조건식의 결과가 참인 행 삭제
- WHERE 생략한 경우 테이블에 저장된 모든 행 삭제
- WHERE 조건식에서 사용하는 비교 컬럼은 PK 제약조건이 부여된 컬럼을 이용하여 삭제하는 것을 권장
- 자식테이블에서 참조되는 부모테이블의 행은 FK 제약조건에 의해 삭제 불가
6. MERGE
- MERGE : 원본테이블의 행을 검색하여 타겟테이블에 행으로 삽입하거나 타겟테이블에 저장된 행의 컬럼값을 변경하는 SQL 명령
MERGE INTO 타겟테이블명 USING 원본테이블명 ON (조건식)
WHEN MATCHED THEN UPDATE SET 타겟컬럼명=원본컬럼명, ...
WHEN NOT MATCHED THEN INSERT(타켓컬럼명, ...) VALUES(원본컬럼명, ...)