본문 바로가기

혼공학습단/혼자 공부하는 SQL

[혼공학습단 7기] 5주차 미션 : Chapter 06

혼공족장님께서 지난주에 혼공학습단 7기 절반 완주를 축하한다는 의미로 바나나 우유 쿠폰을 주셨다!

혼공족장님의 응원 덕분에 기분이 좋다~ 완주할 때까지 계속 아자아자~!

5주차 미션은 무엇이고 어떤 내용을 담고 있을까요?

[기본 미션]
p. 310 - 인덱스 생성하고 key_name이 PRIMARY로 출력된 결과화면 캡쳐하기.
[선택 미션]
인덱스 생성, 제거하는 기본 형식 작성하기

[기본 미션]과 [선택 미션]은 Chapter 06-3 인덱스의 실제 사용에 대한 내용을 담은 문제이다.

바로 5주차 미션을 설명해보겠습니다!

[기본 미션]


인덱스 생성 실습

 1. '인터넷 마켓' 데이터베이스(market_db)를 생성함

 2. market_db에서 회원 테이블(member)을 생성할 때 mem_id(사용자 아이디)를 기본 키(PRIMARY KEY)로 설정함

회원 테이블 생성
회원 테이블

 ⦁ 테이블을 생성할 때 특정 열을 기본 키, 고유 키로 설정하면 인덱스가 자동으로 생성됨
Primary Key 문법 사용  ➔ 클러스터형 인덱스 자동 생성
Unique 문법 사용  ➔ 보조 인덱스 자동 생성

 3. SHOW INDEX 문은 테이블에 생성된 인덱스 정보를 보여줌

SHOW INDEX FROM 테이블_이름;

  ⦁ 아래는 [기본 미션]의 결과화면으로 key_name이 PRIMARY로 클러스터형 인덱스가 자동 생성된 것을 알 수 있음

  ⦁ member 테이블에는 mem_id 열에 클러스터형 인덱스 1개만 설정된 것을 알 수 있음

[기본 미션] 결과화면

[선택 미션]


인덱스 생성 문법

  ⦁ CREATE INDEX 문으로 인덱스를 생성함

CREATE [UNIQUE] INDEX 인덱스_이름
    ON 테이블_이름 (열_이름) [ASC | DESC];
UNIQUE  중복이 안 되는 고유 인덱스를 만드는 것으로 생략을 하면 중복이 허용됨
 ⦁ 단순 보조 인덱스: 중복을 허용하는 보조 인덱스, CREATE INDEX 문
 ⦁ 고유 보조 인덱스: 중복을 허용하지 않는 보조 인덱스, CREATE UNIQUE INDEX 문
ASC
또는 DESC
 인덱스를 오름차순 또는 내림차순으로 만들어 줌 (기본은 ASC로 오름차순)

  ⦁ [예시] 단순 보조 인덱스 생성 - member 테이블의 주소(addr) 열에 중복을 허용하는 인덱스 생성

  ⦁ Non_unique=1 : 중복 데이터를 허용한다는 의미

[예시] 단순 보조 인덱스 생성

  ⦁ [예시] 고유 보조 인덱스 생성 - member 테이블의 회원 이름(mem_name) 열에 중복을 허용하지 않는 인덱스 생성

  ⦁ Non_unique=0 : 중복을 허용하지 않는다는 의미

[예시] 고유 보조 인덱스 생성


 인덱스 제거 문법

  ⦁ CREATE INDEX 문으로 생성한 인덱스는 DROP INDEX 문으로 제거함

DROP INDEX 인덱스_이름 ON 테이블_이름;
주의할 점  기본 키, 고유 키로 자동 생성된 인덱스는 DROP INDEX 문으로 제거하지 못함
 ⦁ ALTER TABLE 으로 기본 키나 고유 키를 제거하면 자동으로 생성된 인덱스도 제거할 수 있음
 ⦁ 클러스터형 인덱스와 보조 인덱스가 섞여 있을 때는 보조 인덱스를 먼저 제거하는 것이 좋음

  ⦁ [예시] 보조 인덱스 제거 - 보조 인덱스 idx_member_mem_name과 idx_member_addr 제거

[예시] 보조 인덱스 제거

  ⦁ [예시] 클러스터형 인덱스 제거 - 인터넷 마켓 데이터베이스의 회원 테이블만 생성한 예제 (외래 키가 없는 예제)

  ⦁ 외래 키가 있는 경우 외래 키의 이름을 알아내서 외래 키를 먼저 제거하고 기본 키를 제거해야 함

[예시] 클러스터형 인덱스 제거


요즘은 한국 국가대표 선수단을 응원하기 위해서 동계올림픽을 보면서 혼공SQL 공부를 하고 있다!ㅎㅎ

그리고.. 다음 주는 혼공학습단 7기 6주차 미션이자 마지막 미션이다..

다음 주에도 여기 블로그에서 꼭 만나요._.

 

'혼공학습단/혼자 공부하는 SQL' 카테고리의 글 목록

노력하는 데이터분석 전문가

so-kr.tistory.com


출처: 한빛미디어, 혼자 공부하는 SQL