오늘의 큰 걸림돌은
db 생성 후 json 파일 연결이 되겠습니다.
사실 아직도 해결 못해서 간간히 검색해 보면서 해결하고 수정해 나갈 예정..
준비물: mysql, mysql workbench 설치 및 활용할 json파일. ( 헌옷수거함의 id, 주소, 위도, 경도가 담긴 파일 )
+ 필드를 컬럼으로 더 자주 쓴다는 사실을 알다
- 생성
1. db 생성 및 확인
1. DB 생성
CREATE DATABASE 내가만들디비명 DEFAULT CHARACTER SET UTF8;
>> db 생성 후 한글 사용할 수 있게 utf8로 문자열 저장
2. 생성된 DB 보기
SHOW DATABASES;
>> db 목록을 보여줌
2. 데베 선택
USE 내가만든db이름;
3. 테이블 생성
CREATE TABLE 테이블이름
(
필드이름1 필드타입1,
필드이름2 필드타입2,
...
);
예시로는,,
CREATE TABLE HH
(
ID INT,
ADDRESS VARCHAR(30),
REGION VARCHAR(30),
X DECIMAL(16,14),
Y DECIMAL(17,14)
);
+ 테이블 생성(CREATE TABLE) 시 사용할 수 있는 제약조건
1. NOT NULL : NULL 값을 저장할 수 X.
2. UNIQUE : 로 다른 값을 가져야만 함. 오로지 하나씩..
3. PRIMARY KEY : NOT NULL && UNIQUE
4. FOREIGN KEY : 하나의 테이블을 다른 테이블에 의존하게 함.
5. DEFAULT : 해당 필드의 기본값을 설정.
+ AUTO_INCREMENT 키워드를 사용하면 해당 필드의 값을 1부터 시작해 새로운 레코드가 추가될 때마다 1씩 증가된 값을 저장함.
AUTO_INCREMENT 키워드 다음에 대입 연산자(=)를 사용하여 시작값을 변경할 수 있음
+ 새로운 필드 추가
ALTER TABLE 테이블명 ADD 필드명 필드타입;
예시...
ALTER TABLE HH
ADD HJ INT;
- 삭제 & 변경
1. 필드 삭제
ALTER TABLE 테이블명 DROP 필드명;
예..
ALTER TABLE HH
DROP HJ;
2. 필드 타입 변경
ALTER TABLE 테이블명 MODIFY COLUMN 필드명 필드타입;
ㅇ.
ALTER TABLE HH
MODIFY COLUMN HJ VARCHAR(30);
3. 테이블 삭제
DROP TABLE 테이블명;
# 테이블 삭제 시 데이터도 모두 삭제됨
4. 테이블의 모든 데이터 삭제
TRUNCATE TABLE 테이블명;
- MySQL workbench와 DB 연결
1. connection name 설정(메인화면에서 뜨는 그 이름 ㅇ ㅇ)
2. 스키마 입력 (이전에 만들어둔 db)
3. test connection 누른 후 successfully made the MySQL connection 뜨면 ㅇㅋ 누름
그럼 이제 mysql workbench에 내 디비가 올라왓음니다!!
create table할 때 설정해 둔 필드타입들 보면서 차차 연결을 완성해 봅시다
하근데 소문자로 만들걸!!! 변경하긴 귀찮으니 일단 넘어가장
(cloth오타ㅠ도 고치고 소문자로 다시 만들다..)
- MySQL 워크벤치에 json파일 import 하기
1. 스키마 우클릭 후 table data import wizard 클릭
2. json 파일 불러오기
3. 테이블 생성창에서 테이블 선택
>> 나의 경우는 기존의 테이블 clothes_store을 선택했음.
4. column 확인
5. 테이블 조회 명령어를 통해 연결이 잘 되었는지 확인
SELECT * FROM db명.테이블명;
아래 사진과 같이 입력 후 쿼리1 밑의 깔끔하고 이쁜 번개모양을 누름 ㅇㅇ.
6. 연결된 json 데이터 확인
원래 테이블에 json 파일의 데이터가 쏙쏙 들어와야하는데 난 자꾸 여기서 문제가 생김..
- 해결해야할 문제는 0 records imported
아니 도대체 외? ㅠㅠ
검색해서 찾아본 원인들
1. json 형식 데이터의 key값과 db column 이름이 일치하지 않음
>> 처음에 필드 정의할 때 대문자로 써서 그런가?
라기엔 그 전의 시도들에서는 id-id , address-address,,, 등 깔끔하게 매칭이 되었음에도 불구하고 데이터가 안 불러와짐.
>> 테이블 갈아엎고 다시 소문자로 예쁘게 작성해도 0 record imported
2. foreign key로 참조하는 데이터를 찾을 수 없음.
>> 놉
3. 접근할 수 없는 위치이거나 보안 문제로 접근 불가
혹시 모르니 json 파일 데스크탑으로 옮기기
>> 실패
4. 뇌피셜
모두 not null로 바꿔볼까??
>> 실패
5. 혹시나 파일의 공밲때문에?!?!!?!?!?
>> 놉
6. 위,경도의 소수점 전체를 문자열로 수정해주어야한단 글도 많이 보이네?
>> 내일 이어서 ㄱㄱ
정답을 찾아내다.
결론은 x 와 y의 데이터가 바뀌어있었음.
(위도 경도가 반대)
3일간의 대장정 마무리 ^^/.
id | VARCHAR(255) |
address | VARCHAR(255) |
region | INT |
x | DECIMAL(16,14) |
y | DECIMAL(17,14) |