SQL/SQL Grammar
local에 있는 csv 파일을 mySQL로 불러오기
ISLA!
2023. 10. 6. 13:29
MySQL Shell Script에서 직접 파일을 불러오는 방식으로
다음과 같은 에러를 해결할 수 있음
1. mySQL workbench 재접속
- Quit MySQL Workbench
2. 다시 접속 후, Edit Connection 에서 설정 변경
- Edit Connetion > Advanced > Others 메뉴
- OPT_LOCAL_INFILE=1 을 입력
- Test Connection 버튼을 클릭하여 정상적으로 접속이 되는지 확인
3. 테이블 생성
- 테이블이 미리 생성되어 있지 않으면 csv 파일을 불러올 수 없음
- 첫번째 줄 의미 : 앞서 생성된 스키마를 사용하겠음
- dataset2라는 테이블 생성하기
USE mydata;
CREATE TABLE `dataset2` (
`Clothing ID` int DEFAULT NULL,
`Age` int DEFAULT NULL,
`Title` text,
`Review Text` text,
`Rating` int DEFAULT NULL,
`Recommended IND` int DEFAULT NULL,
`Positive Feedback Count` int DEFAULT NULL,
`Division Name` text,
`Department Name` text,
`Class Name` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
3. 터미널 설정 변경
- 터미널 접속, mysql 실행
mysql -u root -p
(password 입력시 실행됨)
# 아래 명령어 실행
mysql> show global variables like 'local_infile';
# 아래 내용 확인
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | OFF |
+---------------+-------+
1 row in set (0.00 sec)
- 위 결과가 off 로 나왔다면 on 으로 변경해야한다.
# 아래 명령어 실행
mysql> set global local_infile=true;
# 결과
Query OK, 0 rows affected (0.00 sec)
- 위 명령어를 다시 실행하여 On으로 바뀐거 확인
mysql> show global variables like 'local_infile';
# 결과 확인
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| local_infile | ON |
+---------------+-------+
1 row in set (0.01 sec)
4. 데이터 불러오기
- 먼저 불러올 데이터의 절대경로를 확인한다
- 스키마명 + 테이블명을 모두 입력한다.
- 작성 예시는 아래와 같다 : 컬러 음영이 바꿔야할 부분
LOAD DATA LOCAL INFILE "/Users/angela/Desktop/SQLdatasets/Womens Clothing E-Commerce Reviews.csv" INTO TABLE mydata.dataset2 FIELDS TERMINATED BY "," LINES TERMINATED BY "\n" IGNORE 1 ROWS;
- 또는 필요시 아래와 같이 ENCLOSED BY ‘“’ 를 추가하기도 한다
- 불러오려는 데이터의 내용(구조)에 따라 옵션이 추가되는 것이다.
mysql>
LOAD DATA LOCAL INFILE "/Users/angela/Desktop/SQLdatasets/Womens Clothing E-Commerce Reviews.csv"
INTO TABLE mydata.dataset2 FIELDS TERMINATED BY “,” ENCLOSED BY ‘“’ LINES TERMINATED BY “\n” IGNORE 1 ROWS;
- 실행이 잘 되었다면 아래와 같이 나타남
5. 데이터 확인
- 워크벤치에서 쿼리를 실행하여 실제 조회가 되는지 확인
728x90