데이터 이야기/SQL

[데이터분석 - SQL ] #2-3. 관리 구문(DML / TCL / DDL / DCL)

sssoing-k 2022. 11. 3. 20:14

 

# DML : DATA [SIUDM] : 검색, 삽입, 수정, 삭제 select insert update delete merge
# TCL : Transaction [CRS] : 변경된 내용을 확정, 취소, 일부취소 commit, rollback, savepoint 
# DDL : DATABASE, TABLE  [CDAT] : 생성, 삭제, 변경 create, drop alter, truncate
# DCL : SYSTEM [GRD] : 권한 부여, 제거 grunt, revorke, deny

 

1. DML [SIUDM] > 트랜젝션 수행

Data Manipulation Launguage로 데이터 조작어로써 데이터 검색, 삽입, 수정, 삭제, 조회하는 명령어

 

(1) SELECT : 테이블 내 데이터 검색

SELECT * FROM 테이블명

 

(2) INSERT : 테이블에 데이터 입력

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

 

(3) UPDATE : 저장된 데이터 수정

UPDATE 테이블명 SET 컬럼명 = 새로운 데이터 (WHERE 수정할 데이터에 대한 조건);

 

(4) DELETE : 저장된 데이터 삭제

DELETE FROM 테이블명 (WHERE 수정할 데이터에 대한 조건);

* WHERE절이 없을 경우, 테이블의 모든 ROW가 삭제

 

(5) MERGE : 테이블에 새로운 데이터를 입력하거나 이미 저장되어 있는 데이터에 대한 변경 작업을 한 번에 수행

MERGE
  INTO
타겟 테이블명
USING
비교 테이블명
  ON
조건
WHEN MATCHED THEN
            UPDATE
*수정
                   SET
컬럼명 = 새로운 데이터 [,컬럼명 = 새로운 데이터]
WHEN NOT MATCHED THEN
            INSERT
[(컬럼명1, 컬럼명2,,,)] *새로 입력
            VALUES
[(컬럼명1, 컬럼명2,,,)]

 

 

2.  TCL [CRS] > 트랜젝션 수행

Transaction Control Language로 트랜잭션을 제어하는 명령어
트랜젝션 : 논리적 업무 단위로 데이터 업무 처리의 하나의 과정
원자성 트랜젝션으로 묶인 동장은 모두 성공하거나 모두 실패해야 함(all or nothing)
일관성 트랜젝션 완료 후에도 DB가 가진 데이터에 일관성이 있어야함
고립성 하나의 트랜잭션은 고립되어 수행 (재고 수량에 따라 상품 판매가능)
지속성 트랜젝션 성공 후 변경한 데이터는 영구적으로 저장

 

(1) COMMIT : INSERT, DELETE, UPSATE 후 변경된 내용을 확정, DB에 반영하는 명령어

(2) ROLLBACK : INSERT, DELETE, UPSATE 후 변경된 내용을 취소하는 명령어 - 이전 값으로 복원

(3) SAVEPOINT : ROLLBACK 수행 시 전체 작업이 아닌 일부만 되돌릴 수 있는 명령어

 

SAMPLE TABLE
COL1 = [1, 2, 3]
CO12 = ['가', '나', '다']
COL3 = ['A', 'B', 'C']

----

INSERT INTO SAMPLE VALUES (4,'라','D');
SAVEPOINT A; -- 삽입 구간

UPDATE SAMPLE SET COL2 = '나' WHERE COL IN(1,3);
SAVEPOINT B; -- 수정 구간

DELETE FROM SAMPLE WHERE COL2 = '라';
ROLLBACK TO A; -- 수정, 삭제 취소

DELETE FROM SAMPLE WHERE COL2 = '나';
COMMIT; -- 확정

----
COL1 = [1, , 3, 4]
CO12 = ['가', , '다', '라']
COL3 = ['A', , 'C', 'D']

 

 

 

3.  DDL [CDAT] > DB에 적용

Data Defintion Language, 데이터 정의어로, 데이터베이스 개체를 생성, 삭제, 변경하는 명령어

 

(1) CREATE : 테이블 내 데이터 검색

 

- 데이터 유형

문자 CHAR (8) *8개 문자
VARCHAR (8) *8개 이내 문자
CLOB
숫자 NUMBER
날짜 DATE

- 제약 조건

PRIMARY KEY 기본키 - 테이블에 저장된 각 ROW에 대한 고유성 보장 *NULL 불가
UNIQUE KEY 본키 - 테이블에 저장된 각 ROW에 대한 고유성 보장 *NULL 허용
NOT NULL NULL 불가
CHECK 데이터 값의 범위 제한 ex) 'Y', 'N'
FOREIGN KEY 컬럼 참조, 컬럼에 종속되는 데이터로 무결성 제약 조건 설정 가능

 

 

(2) ALTER : 테이블 구조 변경

 

- ADD COLUMN : 새로운 컬럼 추가

ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형;

- DROP COLUMN : 기존 컬럼 삭제

ALTER TABLE 테이블명 DROP 컬럼명;

- MODIFY COLUMN : 기존 컬럼 복제

ALTER TABLE 테이블명 MODIFY (컬럼명1 데이터 유형[Default 값] [NOT NULL], 컬럼명2 데이터 유형,,,);

- RENAME COLUMN : 기존 컬럼명 변경

ALTER TABLE 테이블명 RENAME 변경한 컬럼명 TO 변경할 이름;

- ADD CONSTRAINT : 제약 조건 추가

ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);

- DROP TABLE : 테이블 삭제

DROP TABLE 테이블명 [CASCADE CONSTRAINT];

* 참조하고 있는 다른 테이블이 존재하는 경우 CASCADE 옵션을 명시하지 않으면 삭제되지 않는다.

** CASCADE CONSTRAINT는 참조 제약조건도 함께 삭제되는 옵션