새로운 예제
krx
< 거래소를 담을 테이블> <종목을 담는 테이블> - KOSPI -> 005930, 010950, 000660 (주식 이름, 종목) - KOSDAQ -> x
- 각 종목은 0월 0일 얼마라는 주가가 있다.
- 주가에는 시가 고가 저가 종가로 나눈다.
-> 스키마와 테이블2개(거래소, 종목) 생성
- code에 unique를 걸게되면 다국적 지원이 될 수 없다. ( 중국도 6자리 사용)
: 제약조건을 사용하여, 부모 테이블의 데이터가 삭제나 변경시 오류가 아닌 자식 테이블의 데이터에도 자동으로 적용되게 해준다.
ON DELETE CASCADE : 삭제할 때 순차적으로 ON UPDATE CASCADE : 수정할 때 순차적으로
SET FOREIGN_KEY_CHECKS = FALSE;
: 외래키 제약조건 검사 중지
SET FOREIGN_KEY_CHECKS = TRUE;
: 외래키 제약조건 검사 재시작
-> data 테이블 생성
data 복수형이 아닌 이유 : data의 복수는 data다ㅋㅋ
-> 테이블 데이터 INSERT
- 거래소 2개
- 종목 4개
-> 데이터 INSERT
- 데이터를 메모장으로 불러오게 되면
열간 구분은 콤마로 행간구분은 엔터로 되어있는 것을 볼 수 있다.- 기억해두고 데이터를 INSERT 하러가보자.
그런데 이 많은 데이터를 하나씩 INSERT를 하기에 너무 오래 걸리지 않을까?
그때 사용하는것이 LOAD DATA 이다.
: 엄청 많은 데이터를 한번에 불러와서(Bulk Load) INSERT 시키고 싶을 때 사용.
- 시간이 절약이 된다.
< MAC 에서 터미널로 내 파일의 경로 찾는 방법 >
cd ~ cd Downloads ls -l ls -l *.csv pwd
CHARACTER SET utf8 : 디코딩을 utf8로 사용한다는 뜻 TERMINATED BY ', ' :내용을 분석할 때 열은 콤마로 분석한다는 뜻 OPTIONALLY ENCLOSED BY '"' : 콤마로 구분되어진 값들은 쌍따옴표로 구분되어져 나온다. IGNORE 1 LINES : 한줄을 무시해라. (일자와 시가....가 적여있는 줄) 더 있다면 TO라고 해서 적으면 된다.? (`exchange_code`, `symbol_code`, `date`, `open`, `high`, `low`, `close`,`volume`) : 엑셀파일에는 앞에 이 두개가 존재하기 않기 때문에 선언을 해준다.
- 데이터가 추가 된 것을 확인 할 수 있다.