일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터리안
- 셀프조인
- 파이썬문풀
- 리트코드sql
- SQL
- 약수구하기
- 문풀
- SQL고득점KIT
- leetcodesql50
- GROUPBY
- leetcode
- with절
- sql문풀
- 데이터분석
- 윈도우함수
- With
- 프로그래머스
- mysql
- 활성사용자수
- 코딩테스트
- 코테
- 파이썬
- UNION
- join
- 서브쿼리
- 위키독스
- 프로그래머스문풀
- leetcode문풀
- levle1
- SQL테스트
- Today
- Total
꿈은 데이터분석가, 취미는 계획
[MY SQL] 기본준비: 스키마 만들기, 테이블 만들기, 데이터 추가하기 본문
이커머스 분석 프로젝트를 파이썬으로 진행하고 있었는데 데이터분석가에게는SQL이 더 중요하다고 생각!
그래서 전처리한 데이터프레임을 csv로 저장해서 SQL에서 불러오는 작업을 진행했다!
CSV파일을 불러오는 방법이 궁금하다면 1번 스키마 생성 후 바로 4번을 진행해주세요!
1. 스키마 만들기
스키마를 만드는 건 간단하다! 쿼리를 실행하고 좌측에서 SCHEMAS옆에 새로고침 버튼을 누르면
설정한 이름의 새로운 데이터베이스(=스키마)가 뜨면 성공!
CREATE DATABASE ecommerce_pjt;
2. 테이블 만들기
테이블은 틀을 만드는 과정이다.
csv파일의 컬럼들의 이름과 데이터타입을 지정해서 테이블의 구성을 만들어준다.
나의 데이터는 event_day(일자별)의 이벤트 횟수와 매출 등의 정보라서 PRIMARY KEY를 event_day라고 지정했다.
*PRIMARY KEY는 중복없이 고유한 값을 가져야 하고 NULL값이 없어야 함!
대부분의 데이터는 횟수로 INT로 지정하고 매출의 경우 소수점 단위로 나와서 DECIMAL을 사용했다.
*DECIMAL은 고정 소수점으로 첫번째 자리에 전체 자릿수를 두번째 자리에 소수점이하 자릿수를 나타냄
CREATE TABLE user_metric (
event_day DATE PRIMARY KEY,
top_view INT,
...
top_sales DECIMAL(10,2);
3. 데이터 추가하기
테이블에 데이터를 추가할 때는 삽입할 테이블명, 컬럼, 값을 입력하면 추가된다
*다른 데이터베이스를 클릭해둔 상태라면 USE 데이터베이스명을 해주거나 해당 스키마를 더블 클릭해줘야 함!
추가한 후에 SELECT * FROM 테이블명 조회했을 때 나오면 성공!
USE ecommerce_pjt;
INSERT INTO user_metric (event_day, top_view, ..., total_sales)
VALUES ('2019-10-01', 13024,, ...,43497.17);
4. CSV 데이터 불러오기
저처럼 csv파일이 있는 경우 스키마 생성 후 바로 CSV파일에서 데이터를 가져오면 됩니다.
1) 테이블을 만들 스키마 우클릭 - Table Data Import Wizard클릭
2) csv가 있는 파일위치 선택
3) 새로운 테이블생성, 스키마 확인 후 원하는 테이블명으로 변경
4) 컬럼별로 데이터 타입 체크(데이터 타입이 잘못 매칭되어 있는 경우 클릭해서 변경)
5) 오류해결
4단계 완료 후 0개의 records라고 뜨는 문제가 발생!
불러오려는 파일을 메모장으로 열고 '다른이름으로 저장'을 하고
이때 파일형식을 '모든파일'로 변경하고 인코딩을 'UTF-8'로 변경
그 뒤에 다시 1번부터 진행했더니 모두 불러와짐!
간혹 레코드가 누락되는 경우도 있으니 원본df의 레코드 수와 일치하는지 확인할 것!!!
'SQL > SQL 활용하기' 카테고리의 다른 글
[MY SQL] csv import 속도 느릴 때 해결방법! (0) | 2024.07.24 |
---|---|
[MY SQL] secure-file-priv 오류(파일로드 문제) 해결 (0) | 2024.07.24 |