카테고리 없음

[3과목] 관리구문

Donghun Kang 2024. 11. 15. 16:32
"홍쌤의 데이터 랩" 유튜브와 유선배 SQL 개발자 책을 보고 정리한 내용임을 밝힙니다.

 

3-1. DML

  • DML(Data Manipulation Language)
- 데이터의 INSERT(삽입), UPDATE(수정), DELETE(삭제), MERGE(병합)
- COMMIT(저장) 혹은 ROLLBACK(취소) 반드시 필요

 

  • INSERT
- 테이블에 행을 삽입할 때 사용
- 한 번에 한 행만 입력 가능(SQL Server는 여러행 동시 삽입 가능)
- 하나의 컬럼에는 한 값만 삽입 가능
- 컬럼별 데이터타입과 사이즈에 맞게 삽입
- INTO절에 컬럼명을 명시하여 일부 컬럼만 입력 가능 / 작성하지 않은 컬럼은 NULL이 입력

 

  • UPDATE
- 데이터 수정할 때 사용
- 컬럼 단위 수정
- 다중 컬럼 수정 가능

 

  • DELETE
- 데이터를 삭제할 때 사용
- 행 단위 실행

 

  • MERGE
- 데이터 병합
- 참조 테이블과 동일하게 맞추는 작업
=> INSERT, UPDATE, DELETE 작업을 동시에 수행

 


 

3-2. TCL

  • TCL(Transaction Control Language)
- 트랜잭션 제어어로 COMMIT, ROLLBACK을 포함
- DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어
- DML 수행 후 트랜잭션을 정상 종료하지 않은 경우 LOCK 발생할 수 있다.
* LOCK: 특정 데이터에 대해서 다른 트랜잭션이 동시에 접근하지 못하도록 제한

 

  • 트랜잭션
- 데이터베이스의 논리적 연산 단위(하나의 연속적인 업무 단위)
- 하나의 트랜잭션에는 하나의 SQL 문장이 포함
- 분할할 수 없는 최소의 단위
- ALL or NOTHING 개념(모두 COMMIT 하거나 ROLLBACK 처리해야 함)
  • 특징

- 원자성: 트랜잭션 정의된 연산들 모두 성공적으로 실행되던지 전혀 실행되지 않은 상태로 남아 있어야 함

- 일관성: 트랜잭션이 완료된 후에도 데이터베이스가 가진 데이터에 일관성이 있어야 한다.

- 고립성: 하나의 트랜잭션은 고립되어 수행되어야 한다.

- 지속성: 트랜잭셩이 성공적으로 수행되면 갱신한 데이터베이스 내용이 영구적으로 저장

 

  • COMMIT
- INSERT, DELETE, UPDATE 후 데이터에 이상이 없을 경우 데이터를 저장하는 명령어
- 한 번 COMMIT을 수행하면 COMMIT 이전에 수행된 DML은 모두 저장되며 되돌릴 수 없음
- ORACLE은 DDL시 AUTO COMMIT이지만 SQL Server는 AUTO COMMIT 비활성화 설정 가능

 

  • ROLLBACK
- INSERT, DELETE, UPDATE 후 변경된 내용을 취소하는 명령어
- 데이터베이스에 저장되지 않고 최종 COMMIT 지점/ 변경 전/ 특정 SAVEPOINT 지점으로 원복됨
- 최종 COMMIT 시점 이전까지 ROLLBACK 가능
- SAVEPOINT를 설정하여 최종 COMMIT 시점이 아닌, 그 이후의 원하는 시점으로의 원복 가능

 

# SAVEPOINT

- ROLLBACK을 수행할 때 전체 작업을 되돌리지 않고 일부만 되돌릴 수 있게 하는 기능을 가진 명령어

 


 

3-3. DDL

  • DDL(Data Definition Language)
- 데이터 정의어
- 데이터 구조 정의(객체 생성, 삭제, 변경) 언어
- CREATE(객체 생성), ALTER(객체 변경), DROP(객체 삭제), TRUNCATE(데이터 삭제)
- AUTO COMMIT(명령이 수행하면 즉시 저장, 원복 불가)

 

  • CREATE
- 테이블이나 인덱스와 같은 객체를 생성하는 명령어
- 테이블 생성 시 소유자 명시 가능(생략 시 명령어 수행 계정 소유)
  • 특징

- 복제테이블의 컬럼명과 컬럼의 데이터 타입이 복제됨

- SELECT문에서 컬럼 별칭 사용 시 컬럼 별칭 이름으로 생성

- CREATE문에서 컬럼명 변경 가능

- NULL 속성도 복제됨

- 테이블에 있는 제약조건, INDEX등은 복제 x

 

# 데이터타입

데이터타입 설명
CHAR(n) 고정형 문자 타입으로 사이즈 전달 필수, 사이즈만큼 확정형 데이터가 입력됨(빈자리수는 공백으로)
VARCHAR2(n) 가변형 문자타입으로 사이즈 전달 필수, 사이즈보다 작은 문자값이 입력되더라도 입력값 그대로 유지
NUMBER(p,s) 숫자형 타입으로 자리수 생략 가능, 소수점 자리 제한 시 s 전달(p는 총 자리수)
DATE 날짜 타입으로 사이즈 전달 불가

 

  • ALTER
- 테이블 구조 변경
- 컬럼 순서 변경 불가

 

1. ADD COLUMN

: 새로운 컬럼을 추가할 때 쓰는 명령어. 추가된 컬럼의 위치는 맨 끝이 되며 별도로 위치를 지정해 줄 수 없다.

=> 여러 컬럼 동시 추가 가능(반드시 괄호 사용)