반응형

# FUNCTION

  • 데이터베이스에서 입력값을 처리하고 결괏값을 반환하는 프로그램.

## 함수의 분류

1. 내장 함수 (Built-In-Function)

단일행 함수

  • 단일 행 값을 입력, 단일 값을 반환.
  • 문자형/숫자형/날짜형/형 변환/NULL 관련 함수 존재
  • 1:M 관계의 두 테이블을 조인할 경우 M 쪽에 단일 행 함수 사용 가능.

다중 행 함수

  • 다중 행 값을 입력해서 단일 값을 반환하는 함수
  • 집계/그룹/윈도운 함수 존재

2. 사용자 정의 함수

  • 사용자가 작성하는 함수
  • 절차형 SQL

 

 

 

반응형
반응형

# 시스템 권한, 오브젝트 권한

## 시스템 권한 (System Privilege)

  • 데이터 베이스 접속, 사용자 생성 및 삭제, 오브젝트 생성 및 관리에 대한 권한.

주요 시스템 권한

1. 세션 (Session)

  • CREATE SESSION : 데이터베이스 접속 권한

2. 사용자 (User)

  • CREATE USER : 사용자 생성 권한
  • DROP USER : 사용자 삭제 권한

3. 테이블 (Table)

  • CREATE TABLE : 테이블 생성 권한
  • ALTER TABLE : 테이블 수정 권한
  • DROP TABLE : 테이블 삭제 권한

4. 뷰 (VIEW)

  • CREATE VIEW : 뷰 생성 권한
  • DROP VIEW : 뷰 삭제 권한

## 오브젝트 권한 (Object Privilege)

  • 테이블, 뷰 등 오브젝트에 대한 삽입, 삭제, 수정, 조회에 대한 권한.

1. 테이블

  • SELECT : 테이블 데이터 조회 권한
  • INSERT : 테이블 데이터 삽입 권한
  • UPDATE : 테이블 데이터 수정 권한
  • DELETE : 테이블 데이터 삭제 권한

2. 뷰 (VIEW)

  • SELECT : 뷰 데이터 조회 권한
반응형
반응형

# DDL (데이터 정의어)

## CREATE

CREATE TABLE 테이블명 (
컬럼명 데이터 유형 [NOT NULL],
컬럼명 데이터 유형 [NOT NULL} ... ,
CONSTRAINT 기본키명 PRIMARY KEY (컬럼명),
CONSTRAINT 고유키명 UNIQUE (컬럼명), ... ,
REFERENCES 참조테이블 (참조테이블_기본키),
CONSTRAINT 제약조건명 CHECK (조건식)
);

  • 데이터 유형 : CHAR, VARCHAR 등..
  • NOT NULL : NULL 값 허용 여부
  • PRIMARY KEY : 기본키 선언
  • UNIQUE : 고유키 설정
  • FOREIGN kEY : 외래키 선언
  • CONSTRAINT : 제약조건 설정
  • CTAS (오라클) : CREATE TABLE 테이블명 AS SELECT * FROM 복사할테이블명;
  • CTAS (SQL Server) : SELECT * INTO 복사할테이블명 FROM 테이블명;
  • 테이블 생성 시 주의사항
1. 적절한 이름
2. 테이블 이름 중복
3. 컬럼 이름 중복
4. 데이터 유형
5. 문자로 시작
6. 예약어

## ALTER

1. 컬럼 추가 (ADD)

ALTER TABLE 테이블명 ADD 컬럼명 데이터 유형 [기본값] [NOT NULL];

2. 컬럼 수정 (MODIFY) : 데이터 유형, 기본값, NOT NULL 등 제약조건 수정

ALTER TABLE 테이블명 MODIFY 컬럼명 데이터 유형 [기본값] [NOT NULL];

3. 컬럼 삭제 (DROP COLUMN)

ALTER TABLE 테이블명 DROP COLUMN 삭제할 컬럼명;

4. 컬럼명 수정 (RENAME COLUMN)

ALTER TABLE 테이블명 RENAME COLUMN 기존_컬럼명 TO 새로운_컬럼명;

5. 제약조건 삭제 (DROP CONSTRAINT)

ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;

6. 제약조건 추가 (ADD CONSTRAINT)

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

## RENAME : 테이블 이름 변경

RENAME 변경전_테이블명 TO 변경후_테이블명;
SQL Server : sp_rename 변경전_테이블명 , 변경후_테이블명;

## DROP TABLE : 테이블 삭제 (모든 데이터, 구조 완전 삭제)

DROP TABLE 테이블명 [CASCADE CONSTRAINT];

  • CASCADE CONSTRAINT 테이블의 PRIMARY KEY, UNIQUE KEY, 참조하는 다른 테이블의 참조 무결성 제약도 함께 삭제. (SQL Server는 없음, 그러므로 테이블 삭제 전 먼저 삭제 해야 함)

## TRUNCATE TABLE : 테이블 저장공간 재 사용 (모든 행 제거_초기상태로)

TRUNCATE TABLE 테이블명;

# DML (데이터 조작어)

## SELECT : 데이터 조회

SELECT [ALL / DISTINCT]
컬럼명 AS 별명
FROM 테이블명;

  • SELECT 절에 명시한 컬럼을 FROM 절의 테이블에서 조회
  • ALL, DISTINCT 생략 가능하나, 생략 시 기본은 ALL로 인식
  • ALL : 중복 데이터가 있어도 모두 조회 (Default)
  • DISTINCT : 중복 데이터가 있는 경우 중복 제거하여 1건만 조회

## INSERT : 데이터의 내용 입력

1. INSERT INTO 테이블명 (컬럼명) VALUES (입력 값);

  • 데이터를 입력하고자 하는 테이블의 컬럼을 정의하여 입력.
  • 컬럼과 입력값 1:1 매핑, 정의하지 않은 컬럼은 디폴트로 NULL 입력.

2. INSERT INTO 테이블명 VALUES (입력 값);

  • 컬럼을 생략하는 경우 모든 컬럼 대상으로 데이터 입력.
  • 입력값은 테이블의컬럼수와 같아야 함.

## UPDATE : 데이터 내용 수정

UPDATE 테이블명
SET 컬럼명 = 입력 값
WHERE 조건;

## DELETE : 데이터 내용 삭제

DELETE [FROM] 테이블명 WHERE 조건;

  • FROM 생략 가능.

# TCL (트랜잭션 제어어)

## COMMIT : 하나의 트랜잭션을 정상적으로 완료하고, 결과를 데이터베이스에 반영

예) INSERT INTO 테이블명 VALUES (입력 값);
COMMIT;

## ROLLBACK : 트랜잭션을 취소

예) UPDATE 테이블명 SET 컬럼명 = 입력 값 WHERE 조건;
ROLLBACK;

## SAVEPOINT : 하나의 트랜잭션을 작게 분할하여 저장

지정 : SAVEPOINT 저장점명;
롤백 : ROLLBACK TO 저장점명;
예) SAVEPOINT SP1;
INSERT INTO 테이블명 VALUES (입력 값);
SAVEPOINT SP2;
UPDATE 테이블명 SET 컬럼명 = 입력값 WHERE 조건;

# DCL (데이터 제어어)

  • 사용자 액세스 권한 제어에 사용하는 언어.
  • 유형 : 시스템 권한, 오브젝트 권한

## GRANT : 권한 부여 시 사용.

1. 시스템 권한 부여

GRANT 시스템 권한
TO 사용자
[
WITH ADMIN OPTION];

  • GRANT : 시스템 권한을 지정
  • TO : 권한을 부여하려는 대상 지정
  • WITH ADMIN OPTION : 부여받은 권한을 다른 사용자에게 부여할 수 있는 권한

2. 오브젝트 권한 부여

GRANT 시스템 권한
ON 오브젝트
TO 사용자
[
WITH GRANT OPTION];

  • GRANT : 오브젝트 권한 지정, 콤마를 이용하여 다수의 오브젝트 지정 가능
  • ON : 대상 오브젝트 지정
  • TO : 권한을 부여하려는 대상 지정
  • WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 부여 할 수 있는 권한

## REVOKE : 권한 석제 시 사용.

1. 시스템 권한 취소

REVOKE 시스템권한
FROM 사용자;

  • REVOKE : 권한을 취소하려는 시스템 권한 지정
  • FROM : 권한을 취소하려는 대상 지정

2. 오브젝트 권한 취소

REVOKE 오브젝트권한
ON 오브젝트
FROM 사용자;

  • REVOKE : 권한을 취소하려는 오브젝트 권한 지정
  • ON : 권한을 취소하려는 오브젝트 지정
  • FROM : 권한을 취소하려는 대상 지정

# 역할 (Role)

  • 사용자와 권한 사이에서 중개 역할을 하는 논리적인 권한 그룹.
  • 사용자별로 다수의 권한을 부여하는 경우 권한을 역할로 묶어 관리 가능

## 역할의 권한 관리

  • 시스템 권한과 오브젝트 권한 모두 부여가능.

1. 역할 생성

CREATE ROLE 역할;

2. 시스템 권한 부여

GRANT 시스템 권한 TO 역할;

3. 오브젝트 권한 부여

GRANT 오브젝트 권한 ON 오브젝트 TO 역할;

4. 사용자 역할 부여

GRANT 역할 TO 사용자;

반응형
반응형

# 로우체이닝, 로우마이그레이션

## 로우 체이닝

  • 하나의 로우가 다수의 블록에 저장되는 현상.

## 로우 마이그레이션

  • 데이터 수정 발생 시 기존 블록이 아닌 새로운 블록에 저장되는 현상.

# 파티셔닝, 데이터 분할

## 파티셔닝

  • 하나의 테이블을 다수의 파티션으로 분할하는 기법.
  • 물리적 파티셔닝을 통해 데이터를 파티션 단위로 관리.
  • 부하를 각 파티션으로 분산시켜 성능 향상.
  • 결과물 : 하나의 테이블
  • 종류 : 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝, 컴포지트 파티셔닝

## 데이터 분할

  • 하나의 테이블을 다수의 테이블로 분할하는 기법.
  • 테이블 분할을 통해 I/O를 줄이고 성능을 향상.
  • 결과물 : 다수의 테이블
  • 종류 : 수직 분할, 수평 분할
반응형

+ Recent posts