Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 알고리즘
- database
- java
- javascript
- db
- rdbms
- 파이썬
- 에러
- spring
- 백준
- eclipse
- flask
- mybatis
- 자바
- 스프링
- mysql
- BOJ
- TIL
- 데이터베이스
- 자바스크립트
- sql
- 플라스크
- 이클립스
- 오라클
- Oracle
- Git
- PYTHON
- 링크
- 웹프로그래밍
- jQuery
Archives
- Today
- Total
기록과 정리의 공간
[MySQL] (20200820) TIL 본문
TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크)
- 공부한 내용
- SQL파일로 SQL명령 실행하기
- 파일로 데이터 한 번에 입력하기
1. SQL파일로 SQL명령 실행하기
- 방법1 : Workbench실행 - File - Open SQL Script - 원하는 sql파일(.sql파일)
- 방법2 : Mysql 터미널에서 SOURCE명령 사용
- .sql파일 위치가 터미널 명령을 실행하는 동일 디렉토리에 있다면 SOURCE 파일명.sql명령 입력
- 위의 경우가 아니라면, .sql 파일이 위치하는 경로를 전부 명시해줘야함.
(예시)
SOURCE /Users/hong/파일명.sql
- .sql 샘플 파일
- DB 및 테이블 생성 시에 반드시 DEFAULT CHARSET=utf8로 인코딩해주도록 하자.
- ENUM타입 : ()안에 지정된 값만 저장 가능하다. 아래 코드에서는 'man'과 'woman' 두 가지 중 하나의 값만 gender컬럼에 저장할 수 있다.
- ENGINE=InnoDB : 스토리지 엔진을 InnoDB로 지정하기 위한 명령. 최근 Mysql버젼은 InnoDB가 디폴트 엔진으로 지정되어 있기 때문에 굳이 명시해주지 않아도 된다고 한다.
DROP DATABASE IF EXISTS student_mgmt;
CREATE DATABASE student_mgmt DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
USE student_mgmt;
DROP TABLE IF EXISTS 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;
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('dave', 'man', '1983-07-16', 90, 80, 71);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('minsun', 'woman', '1982-10-16', 30, 88, 60);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('david', 'man', '1982-12-10', 78, 77, 30);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jade', 'man', '1979-11-1', 45, 66, 20);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jane', 'man', '1990-11-12', 65, 32, 90);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('wage', 'woman', '1982-1-13', 76, 30, 80);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('tina', 'woman', '1982-12-3', 87, 62, 71);
2. 파일로 테이블에 데이터 한 번에 입력하기
파일을 이용하면 INSERT구문을 사용하지 않고 데이터를 한 번에 테이블에 입력할 수 있다.
.csv파일 형식으로 데이터를 작성한다. (csv파일이란?)
- 파일 저장 시에 반드시 유니코드로 저장해야하고, 파일명 뒤에 .csv를 붙여서 저장하도록 하자.
(.csv파일 예시 - id컬럼은 auto_increment이므로 제외함) name, gender, birth, english, math, korean 'andy', 'man', '1920-12-01', 100, 60, 95 'olivia', 'woman', '1930-08-20', 70, 80, 90 'jane', 'woman', '1928-07-10', 100, 100, 100 'malcom', 'man', '1932-02-25', 20, 30, 85 'peter', 'man', '1935-01-08', 65, 90, 95 'sujin', 'woman', '1922-10-10', 90, 80, 70 'mandy', 'woman', '1919-03-28', 70, 100, 90
방법1 : Workbench 이용
- 아래 이미지들 이후의 과정은 계속 next 누르다가 최종적으로 finish버튼 누르면 됨.
- 아래 이미지들 이후의 과정은 계속 next 누르다가 최종적으로 finish버튼 누르면 됨.
방법2 : MySQL 터미널에서 아래 명령 사용 (현업에서는 이 방법을 많이 사용)
LOAD DATA INFILE '풀경로/파일명.csv' INTO TABLE db명.테이블명 (컬럼명1, 컬럼명2, ....);
(예시)
LOAD DATA INFILE '/Users/hong/파일명.csv' INTO TABLE student_mgmt.students (name, gender, birth, english, math, korean);
'DATABASE > MySQL' 카테고리의 다른 글
[MySQL] (20200829) TIL (0) | 2020.08.30 |
---|---|
[MySQL] (20200827) TIL (0) | 2020.08.27 |
[MySQL] (20200808) TIL (0) | 2020.08.08 |
[MySQL] (20200807) TIL - 2 (0) | 2020.08.07 |
[MySQL] (20200807) TIL - 1 (0) | 2020.08.07 |
Comments