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;
✔ 파티션 테이블
파티션이란?
테이블에 있는 특정 컬럼 값을 기준으로 데이터를 분할해 저장해 놓는 것
파티션 테이블을 만드는 목적
- 대용량 테이블의 경우 데이터 조회 시 효율성과 성능을 높이기 위한 것이다.
'🏃♀️ Do it ! > TIL' 카테고리의 다른 글
데이터베이스 변환 함수 / NULL 관련 함수 / 기본 집계 함수 / GROUP BY 절과 HAVING절 / ROLLUP절과 CUBE절 (0) | 2022.10.19 |
---|---|
데이터베이스 DML - SELECT / INSERT / UPDATE / DELETE / COMMIT, ROLLBACK, TRUNCATE (0) | 2022.10.18 |
데이터베이스 객체의 종류 / 데이터 타입(문자, 숫자, 날짜, LOB) (0) | 2022.10.14 |
SQL / 테이블 스페이스 생성하기 (0) | 2022.10.13 |
데이터베이스 / 샘플스키마 설치하기 (0) | 2022.10.12 |