본문 바로가기

취업/자격증

SQL 2과목 - 관리 구문

출처: 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