[데이터분석 - SQL ] #2-3. 관리 구문(DML / TCL / DDL / DCL)
# 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는 참조 제약조건도 함께 삭제되는 옵션