버터감자
오늘도 내 하루는
버터감자
전체 방문자
오늘
어제
  • 분류 전체보기 (139)
    • 🏃‍♀️ Do it ! (80)
      • TIL (73)
      • Project (5)
      • Certificate (2)
    • 📓 TechNote (52)
      • RPA (1)
      • Python (2)
      • JAVA (13)
      • Spring (11)
      • SQL (7)
      • Git & GitHub (6)
      • CS (0)
      • HTML & CSS & JavaScript (2)
      • Tools (9)
      • API (1)
    • 🔔 Error (7)
      • Error (7)

블로그 메뉴

  • 홈
  • 태그

공지사항

인기 글

태그

  • dml
  • callback
  • 배열
  • 객체지향
  • 만들기
  • 오라클
  • 안드로이드
  • 스택
  • 큐
  • 코틀린
  • 이클립스
  • sqld
  • 세션
  • 홈페이지
  • foreach
  • 버블소트
  • opacity
  • 문제풀이
  • SQL
  • 이것이자바다
  • 기본쿼리
  • 게시판
  • 포트폴리오
  • 부트스트랩
  • 데이터베이스
  • 함수
  • 톰캣
  • 변수
  • final필드
  • 스프링

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
버터감자

오늘도 내 하루는

데이터베이스 테이블 변경 / 테이블 복사 / 뷰 / 인텍스 / 시퀀스 / 파티션 테이블
🏃‍♀️ 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;

✔ 파티션 테이블

파티션이란?

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

 

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

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

'🏃‍♀️ 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
    '🏃‍♀️ Do it !/TIL' 카테고리의 다른 글
    • 데이터베이스 변환 함수 / NULL 관련 함수 / 기본 집계 함수 / GROUP BY 절과 HAVING절 / ROLLUP절과 CUBE절
    • 데이터베이스 DML - SELECT / INSERT / UPDATE / DELETE / COMMIT, ROLLBACK, TRUNCATE
    • 데이터베이스 객체의 종류 / 데이터 타입(문자, 숫자, 날짜, LOB)
    • SQL / 테이블 스페이스 생성하기
    버터감자
    버터감자
    🌱 새싹 개발자의 코딩 블로그 🌱

    티스토리툴바