[혼공학습단 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