1. sql 파일 Load
students.sql 이라는 파일에는 다음과 같은 내용이 작성되어 있다.
데이터베이스 생성
CREATE DATABASE student_mgmt DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
DEFAULT CHARSET = utf8
문자 인코딩과 관련된 설정: 한글 데이터의 정확한 처리를 위해 데이터베이스/테이블 생성 시 추가
COLLATE = utf8_bin
Collation은 특정 문자 셋에 의해 데이터베이스에 저장된 값들을 비교 검색하거나 정렬 등의 작업을 위해 문자들을 서로 비교할 때 사용하는 규칙
테이블 생성
USE student_mgmt
DROP TABLE IF EXIST students;
CREATE TABLE students (
id TINYINT NOT NULL AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
gender ENUM('man','woman') NOT NULL,
birth DATE NOT NULL,
english TINYINT NOT NULL,
math TINYINT NOT NULL,
korean TINYINT NOT NULL,
PRIMARY KEY(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ENUM 타입: 특정 값만 저장할 수 있도록 저장 가능 값을 지정해주는 타입
ENGINE=InnoDB : 스토리지 엔진을 정해주는 명령어 (최근 MySQL은 디폴트로 InnoDB 사용)
데이터베이스와 마찬가지로 테이블을 만들때도 DEFAULT CHARET=utf8 설정
데이터 입력
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('kim', 'man', '1998-02-16', 90, 80, 71);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('lee', 'woman', '1995-10-16', 30, 88, 60);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('park', 'man', '1993-12-10', 78, 77, 30);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('sung', 'man', '1998-11-1', 45, 66, 20);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('choi', 'man', '1997-11-12', 65, 32, 90);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('No', 'woman', '1996-1-13', 76, 30, 80);
터미널 환경에서 students.sql파일을 실행
mysql -u root -p
// SOURCE 파일경로
SOURCE C:\Users\korea\OneDrive\sql_file\students.sql
// 잘 실행되었는지 확인
use student_mgmt;
select * from students;
2. CSV 파일 Load
터미널 환경에서 다음과 같이 명령어 실행
LOAD DATA INFILE 'CSV 데이터 파일' INTO TABLE student_mgmt.students (name, gender, birth, english, math, korean);