출처: https://www.youtube.com/watch?v=ijpxmi4DPj4
DML
- 데이터 수정어
- INSERT, UPDATE, DELETE, MERGE
- 커밋 롤백 반드시 필요
INSERT
- 테이블에 행을 삽입할 때 사용
- 하나의 컬럼에는 한 값만 삽입 가능
- 컬럼의 데이터타입과 사이즈에 맞게 삽입
- ex) insert into 테이블 values(값1, 값2, ...)
UPDATE
- 데이터 수정할 때 사용
- 컬럼 단위 수행
- 다중 컬럼 수정 가능
- ex) UPDATE 테이블명 SET ~ WHERE
DELETE
- 데이터 삭제할 때 사용
- 행 단위 실행
- ex) DELETE ~ WHERE
MERGE
- 데이터 병
- 참조 테이블과 동일하게 맞추는 작업
- MERGE INTO ~ USING ~ ON ~ WHEN
TCL
- 트랜잭션 제어어
- COMMIT, ROLLBACK
- 트랜잭션 정상 종료하지 않는 경우 LOCK(동시 접근하지 못하도록 제한하는 것) 발생할 수 있음
트랜잭션
- 데이터베이스의 논리적 연산 단위(하나의 연속적인 업무 단)
- 특징: 원자성, 일관성, 고립성, 지속성
COMMIT
- 입력, 수정, 삭제한 데이터에 이상이 없을 경우 데이터를 저장하는 명령어
- 한 번 Commit을 수행하면 Commit 이전에 수행된 DML은 모두 저장되며 되돌릴 수 없음
ROLLBACK
- 테이블 내 입력한 데이터나 수정한 데이터, 삭제한 데이터에 대해 변경을 취소하는 명령어
- 데이터베이스에 저장되지 않고 최종 COMMIT 지점/변경 전/특정 SAVEPOINT 지점으로 원복됨
- 최종 COMMIT 시점 이전까지 ROLLBACK 가능
DDL
- 데이터 정의
- 데이터 구조 정의(객체 생성, 삭제, 변경) 언어
- CREATE, ALTER, DROP, TRUNCATE
CREATE
- 테이블이나 인덱스와 같은 객체를 생성하는 명령어
- 테이블명, 컬럼명, 컬럼순서, 컬럼크기, 컬럼의 데이터타입 정의 필수
- 소유자 명시 가능
- ex) CREATE TABLE ~
ALTER
- 테이블 구조 변경(컬럼명, 데이터타입, 사이즈, default값, 제약조건, 컬럼삭제 및 추)
- 컬럼순서 변경 불가
- ex) ALTER TABLE ~ (ADD | MODIFY | RENAME COLUMN | DROP COLUMN)
DROP
- 객체(테이블, 인덱스 등) 삭제
- DROP 후에는 조회 불가
- ex) DROP TABLE ~
TRUNCATE
- 구조 남기고 데이터만 즉시 삭제, 즉시 반영(AUTO COMMIT)
- RECYCLEBIN에 남지 않음
제약조건
1. PRIMARY KEY(기본키)
- 유일한 식별자
- 하나의 테이블에 여러 기본키를 생성할 수 없음
- 중복 허용 X, NOT NULL
2. UNIQUE
- NULL 허용
- 중복을 허용하지 않음
3. NOT NULL
- 추가할 거면 add가 아니라 modify로 수정해야 한다.
- 다른 제약조건과 다르게 컬럼의 특징을 나타냄 -> CATS로 복제 시 따라감
4. FOREIGN KEY
- 참조테이블의 참조 컬럼에 있는 데이터를 확인하면서 본 테이블 데이터를 관리할 목적으로 생성
- 반드시 참조 테이블의 참조 컬럼이 사전에 PK 혹은 UNIQUE KEY를 가져야 함
5. CHECK
- 직접적으로 데이터의 값 제한(양수, (1~4) 중 하나)
기타 오브젝트
1. 뷰(VIEW)
- 저장공간을 가지지는 않지만 테이블처럼 조회 및 수정할 수 있는 객체
- 단순 뷰 / 복합 뷰로 나뉨
- ex) CREATE VIEW / DROP VIEWddddd
2. 시퀀스(SEQUENCE)
- 자동으로 연속적인 숫자 부여해주는 객체
- ex) CREATE SEQUENCE ~
3. 시노님(SYNONYM)
- 테이블 별칭 생
- ex) CREATE PUBLIC SYNONYM
DCL
- 데이터 제어
- 객체에 대한 권한을 부여하거나 회수하는 기능
- GRANT, REVOKE
권한 종류
1. 오브젝트권한
- 테이블에 대한 권한 제어
- ex) 특정 테이블에 대한 SELECT, INSERT, UPDATE, DELETE, MERGE 권
- 테이블 소유자는 타계정에 소유 테이블에 대한 조회 및 수정 권한 부여 및 회수 가능
2. 시스템권한
- 시스템 작업 등을 제어
- ex) 테이블 생성 권한, 인덱스 삭제 권한
- 관리자 권한만 권한 부여 및 회수 가능
GRANT
- 권한 부여 시 반드시 테이블 소유자나 관리자계정(SYS, SYSTEM)으로 접속하여 권한을 부여하여야 한다.
- 동시에 여러 유저에 대한 권한 부여 가능
- 동시 여러 권한 부여 가능
- 동시 여러 객체 권한 부여 불가
- ex) GRANT 권한 ON 테이블명 TO 유저;
REVOKE
- 동시 여러 권한 회수 가능
- 이미 회수된 권한 재회수 불가
- 동시 여러 유저로부터의 권한 회수 가능
- ex) REVOKE 권한 ON 테이블명 FROM 유저;
ROLE
- 권한의 묶음(생성 가능한 객체)
- SYSTEM 계정에서 ROLE 생성 가능
- ex) CREATE ROLE ~;
권한부여 옵션(중간관리자의 권한)
1. WITH GRANT OPTION
- WITH GRANT OPTION 으로 받은 오브젝트 권한을 다른 사용자에게 부여할 수 있음
- 중간관리자가 부여한 권한은 중간관리자만 회수 가능
- 중간관리자 권한 회수 시 제 3자에게 부여된 권한도 함께 회수됨
2. WITH ADMIN OPTION
- WITH ADMIN OPTION을 통해 부여 받은 시스템 권한/롤 권한을 다른 사용자에게 부여할 수 있음
- 중간관리자를 거치지 않고 직접 회수 가능
- 중간관리자 권한 회수시 제3자에게 부여된 권한도 함께 회수X
'취업 > 자격증' 카테고리의 다른 글
AWS SAA - Compute & Container & Serverless (0) | 2024.08.23 |
---|---|
AWS SAA 준비 - youtube 메타코드M 정리 (0) | 2024.08.23 |
SQLD 2과목 - SQL 활용 (0) | 2024.05.22 |
SQLD 2과목 - SQL 함수 정리(날짜 함수, 변환 함수, NULL 관련 함수) (0) | 2024.05.22 |
SQLD 2과목 - SQL 함수 정리(숫자 함수) (0) | 2024.05.21 |