🏃‍♀️ Do it !/TIL

데이터베이스 테이블 변경 / 테이블 복사 / 뷰 / 인텍스 / 시퀀스 / 파티션 테이블

버터감자 2022. 10. 17. 09:18
728x90

2022 / 10 / 17 월

  • 데이터베이스 테이블 변경
  • 테이블 복사
  • 인덱스
  • 시퀀스
  • 파티션테이블

데이터베이스 테이블 변경

 

1. 컬럼명 변경

- col1 컬럼 이름을 col11으로 변경하는 방법

    ALTER TABLE [스키마.]테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;

    ALTER TABLE ex2_10 RENAME COLUMN Col1 TO Col11;

 


2.컬럼 타입 변경

col2 컬럼을 VARCHAR2(10)에서 VARCHAR2(30)으로 변경

ALTER TABLE [스키마.]테이블명 MODIFY 컬럼명 데이터타입;
ALTER TABLE ex2_10 MODIFY Col2 VARCHAR2(30);

3.컬럼 추가

col3 NUMBER 타입으로 신규 생성

ALTER TABLE [스키마.]테이블명 ADD 컬럼명 데이터타입;
ALTER TABLE ex2_10 ADD Col3 NUMBER;

4.컬럼 삭제

col3 컬럼을 삭제

ALTER TABLE [스키마.]테이블명 DROP COLUMN 컬럼명;
ALTER TABLE ex2_10 DROP COLUMN Col3 ;

5.제약조건 추가

col11에 기본키 추가

ALTER TABLE [스키마.]테이블명 ADD CONSTRAINTS 제약조건명 PRIMARY KEY (컬럼명, ..);
ALTER TABLE ex2_10 ADD CONSTRAINTS pk_ex2_10 PRIMARY KEY (col11);

6.제약조건 삭제

col11에서 기본키 삭제

 ALTER TABLE [스키마.]테이블명 DROP CONSTRAINTS 제약조건명;
 ALTER TABLE ex2_10 DROP CONSTRAINTS pk_ex2_10;

테이블 복사

 

✨ 테이블 복사는 제약조건이 복사되지 않는다.

CREATE TABLE [스키마.]테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 복사할 테이블명;

CREATE TABLE ex2_9_1 AS
SELECT *
FROM ex2_9;

 뷰

뷰의 특징

1. 뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체

2. 실제 데이터는 뷰를 구성하는 테이블에 담겨 있지만 마치 테이블처럼 사용할 수 있다

3. 테이블 뿐만 아니라 다른 뷰를 참조해 새로운 뷰를 만들수있다.

4. 뷰의 정의는 SELECT문으로 구성된다

CREATE OR REPLACE VIEW [스키마.]뷰명 AS
SELECT 문장;

 

뷰 삭제

 DROP VIEW [스키마.]뷰명;

 인덱스

 

인덱스는 테이블에 있는 데이터를 빨리 찾기 위한 용도의 데이터베이스 객체

 

1 인덱스 구성 컬럼 개수에 따른 분류

단일 인덱스와 결합 인덱스

 

2 유일성 여부에 따른 분류

UNIQUE 인덱스, NON-UNIQUE 인덱스

 

3 인덱스 내부 구조에 따른 분류

B-tree 인덱스, 비트맵 인덱스, 함수 기반 인덱스

 


인덱스 생성

CREATE[UNIQUE] INDEX [스키마명.]인덱스명
ON [스키마명.]테이블명(컬럼1, 컬럼2, ...);

CREATE UNIQUE INDEX ex2_10_ix01
ON ex4210 (col11);

인덱스를 생성할 때 고려해야할 점

 

1 일반적으로 테이블 전체 로우 수의 15%이하의 데이터를 조회할 때 인덱스를 생성한다

2 테이블 건수가 적다면 인덱스보다 테이블전체를 스캔하는게 빠르다.

3 데이터의 유일성 정도가 좋거나 범위가 넓은 값을 가진 컬럼을 인덱스로 만드는 것이 좋다

 

4 NULL이 많이 포함된 컬럼은 인덱스 컬럼으로 만들기 적당치 않다

 

5 결합 인덱스를 만들 때는 컬럼의 순서가 중요하다 / 우선순위를 먼저하자

 

6 테이블에 만들 수 있는 인덱스 수의 제한은 없으나, 너무 많이 만들면 오히려 성능 부하가 발생한다

 


시퀀스 (Sequence)

시퀀스는 자동 순번을 반환하는 데이터베이스 객체다. 

증감 연산을 이용해 유일한 숫자를 구할 때는 시퀀스를 사용하면 매우 편리하다

 

CREATE SEQUENCE [스키마명.]시퀀스명
INCREMENT BY 증감숫자
START WITH 시작숫자
NOMINVALUE | MINVALUE 최솟값
NOMAXVALUE | MAXVALUE 최댓값
NOCYCLE | CYCLE
NOCACHE | CACHE;

파티션 테이블

파티션이란?

테이블에 있는 특정 컬럼 값을 기준으로 데이터를 분할해 저장해 놓는 것

 

파티션 테이블을 만드는 목적

- 대용량 테이블의 경우 데이터 조회 시 효율성과 성능을 높이기 위한 것이다.