[Practice] 인덱스, 변수

2020. 9. 30. 01:18Database/Practice

1. 인덱스

1) 테이블 생성

DROP DATABASE IF EXISTS sqlpractice; 
CREATE DATABASE sqlpractice; 
USE sqlpractice;

DROP TABLE IF EXISTS member;
CREATE TABLE member ( 
  no INT NOT NULL AUTO_INCREMENT, 
  id VARCHAR(32) NOT NULL, 
  name CHAR(20) NOT NULL, 
  sex ENUM('남','여'), 
  post_num CHAR(8), 
  address TEXT, 
  tel CHAR(16), 
  age TINYINT UNSIGNED, 
  PRIMARY KEY (no), 
  UNIQUE KEY (id), 
  KEY (name), 
  KEY (name, age), 
  FULLTEXT KEY (address) 
) ENGINE=MyISAM;

2) 데이터 삽입

INSERT INTO member VALUES ('', 'yjhwang', '황영주', '남', '100-011', '서울시 중구 충무로1가', '234-8879', 35); 
INSERT INTO member VALUES ('', 'khshul', '설기형', '남', '607-010', '부산시 동래구 명륜동', '764-3784', 33); 
INSERT INTO member VALUES ('', 'chpark', '박철호', '남', '503-200', '광주시 남구 지석동', '298-9730', 34); 
INSERT INTO member VALUES ('', 'shlee', '이상훈', '남', '503-200', '광주시 남구 도금동', '838-4347', 32); 
INSERT INTO member VALUES ('', 'jyjang', '장영숙', '여', '503-201', '부산시 영도구 봉래동5가', '399-9809', 24); 
INSERT INTO member VALUES ('', 'yjbae', '배용진', '남', '606-065', '서울시 은평구 응암4동', '857-5683', 30); 
INSERT INTO member VALUES ('', 'hbpark', '박혜빈', '여', '122-014', '경기도 과천시 중앙동', '234-7677', 22); 
INSERT INTO member VALUES ('', 'mskim', '김문수', '남', '427-760', '경기도 시흥시 신천동', '370-6003', 63); 
INSERT INTO member VALUES ('', 'bkcha', '차범길', '남', '429-020', '대전시 서구 둔산1동', '432-9877', 49); 
INSERT INTO member VALUES ('', 'kskim', '김길수', '남', '302-121', '경기도 수원시 장안구 파장동', '324-5875', 54); 
INSERT INTO member VALUES ('', 'srkim', '김수련', '남', '440-747', '대구시 달서구 신당동', '987-3688', 23); 
INSERT INTO member VALUES ('', 'srlee', '이성현', '남', '704-701', '경기도 수원시 권선구 매산로1가', '243-6844', 36); 
INSERT INTO member VALUES ('', 'hnjang', '정한나', '여', '441-081', '광주시 서구 화정4동', '845-4547', 58); 
INSERT INTO member VALUES ('', 'mylee', '이명연', '여', '502-791', '광주시 서구 쌍촌동', '837-9432', 33); 
INSERT INTO member VALUES ('', 'yskim', '김영숙', '여', '429-010', '경기도 시흥시 대야동', '374-8438', 53);

3) 인덱스

순서 내용
1 member 인덱스 확인
2 PK로 member 테이블 데이터 조회
3 UNIQUE로 member 테이블 데이터 조회
4 NORMAL로 member 테이블 데이터 조회
5 FULLTEXT로 데이터 조회
6 인덱스 생성
7 인덱스 삭제

- 실습 쿼리문

더보기

/* member 인덱스 확인 */
SHOW INDEX FROM member;

/* PK로 member 테이블 데이터 조회 */

SELECT * FROM member WHERE no=1;

 

/* UNIQUE로 member 테이블 데이터 조회 */

SELECT * FROM member WHERE id='kskim';

 

/* NORMAL로 member 테이블 데이터 조회 */

SELECT * FROM member WHERE name='김길수';

 

/* FULLTEXT로 데이터 조회 */

SELECT address FROM member WHERE MATCH(address) AGAINST('봉래동5가');

 

/* 인덱스 생성 */

CREATE INDEX inx_sex ON member (sex);

 

/* 인덱스 삭제 */

ALTER TABLE member DROP INDEX idx_sex;

 

 

 

2. 변수

순서 내용
1 name, age 변수 생성
2 다른 SQL문 내에서 변수에 데이터를 저장

- 실습 쿼리문

더보기

/* name, age 변수 생성 */
SET @name='김철수', @age=20;

/* 다른 SQL문 내에서 변수에 데이터 저장 */

SET @d_no=1000;

SELECT @v_no:=@d_no + no as number name, age FROM member;

728x90