본문 바로가기
나도 개발자다!/ios단축어

단축어 활용 - 시리로 집안에 숨은 물건 찾기(5): 테이블에 데이터 삽입

by 개발새발자 2020. 12. 2.

2020/11/26 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(0)

2020/11/27 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(1):리눅스 서버와의 연결

2020/11/28 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(2): 준비물 설치-1(파이썬)

2020/11/30 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(3): 준비물 설치-2(MySQL)

2020/12/01 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(4): 테이블 만들기

 

 

 

 

INSERT INTO 구문으로 데이터를 추가해보겠다.

 

우선

use location;

으로 데이터베이스를 선택한 뒤

insert into location (item, room, section, container) 
values('hammer', 'computer room', 'left side', 'red container');

이렇게 삽입하고

select * from location;

를 입력하면 해머가 입력된 것을 알 수 있다

하지만 문제가 있는데…

한글 입력이 안된다는 것.

 

여러 검색 끝에 한글 설정은 포기하고 다른 대안을 생각해내었다.

 

MySQL콘솔에서는 한글 복붙이 안되지만, 리눅스 콘솔에서는 한글 붙여 넣기가 된다. (물론 그냥 쓰면 위와 같은 문제가 동일하게 발생한다.)

 

, insert into문을 포함한 파이썬 코드를 작성한 다음 리눅스 콘솔에서 붙여 넣기 하면 된다!

 

리눅스 콘솔에 접속한 후(mysql이 구동중이라면 ctrl+d 또는 콘솔 창에 quit이라고 입력하면 리눅스 콘솔이 종료된다.)

vim adder.py를 입력한다.

 

검은 백지가 등장하는데, 지금은 읽기 전용이니 키보드에서 'i'를 누르면 입력모드가 활성화된다.아래 코드를 적절히 수정 후 복사해서 붙여 넣자.

 

import pymysql

import sys

juso_db = pymysql.connect(

    user='mysql계정이름',

    passwd='mysql계정비밀번호',

    host='localhost',

    db='location',

    charset='utf8'

)

str1 = sys.argv[1]

str2 = sys.argv[2]

str3 = sys.argv[3]

str4 = sys.argv[4]

cursor = juso_db.cursor()


sql = "INSERT INTO location (item, room, section, container) VALUES (%s, %s, %s, %s);"

cursor.execute(sql, (str1, str2, str3, str4))

juso_db.commit()

https://yurimkoo.github.io/python/2019/09/14/connect-db-with-python.html 내용을 참고하였다.

저장하는 방법은 esc키를 누른 뒤 :wq! 를 쓰면 write and quit이 된다.

sys.argv [1] ~ [4]는 파이썬 코드를 실행할 때 매개 변수로 넣는 것이다.

띄어쓰기로 구분된 매개변수가 순서대로 item, room, section, container에 각각 저장된다.

 

 

리눅스 콘솔에서

python3 adder.py '망치' '펜트리' '왼쪽선반' '두번째칸';

 을 입력한다.

(매개변수는 띄어쓰기로 구분되는 듯하다. 띄어쓰기를 하지 않는다면 작은따옴표는 필요 없지만, 사람 일은 알 수 없으니 작은따옴표로 묶는 게 낫다. 왼쪽 선반 -> 매개 변수가 왼쪽선반 하나씩 입력이 된다. '왼쪽 선반' 왼쪽 선반 하나로 입력된다.)

 

 

mysql로 로그인한 후

use location;

select * from location;

입력하면 방금 입력한 내용을 확인할 수 있다.

 

 

엑셀에 데이터를 저장한다. 이제 본격적인 막노동이다. 나는 왼쪽부터 - 항목, , 구역, 컨테이너 순으로 정렬했다. 서랍을 하나 열어 놓고 그 안에 있는 내용물을 다 정리하는 방식으로 데이터를 저장하면 된다.

 

그리고 우측 남는 칸에

=CONCAT("python3 adder.py '", A1,"' '", B1,"' '", C1,"' '", D1,"';")

이 수식을 쓰고 아래로 드래그하면 파이썬 실행 명령어가 주루 루루 룩아래와 같이 나온다.

 

python3 adder.py '망치' '펜트리' '왼쪽선반' '두번째칸';

python3 adder.py '드릴' '펜트리' '왼쪽선반' '두번째칸';

python3 adder.py '나사' '펜트리' '왼쪽선반' '두번째칸';

python3 adder.py '못' '펜트리' '왼쪽선반' '두번째칸';

python3 adder.py '니퍼' '펜트리' '왼쪽선반' '두번째칸';

python3 adder.py '케이블' '컴퓨터실' '책장' '왼쪽1층';

python3 adder.py '보조배터리' '컴퓨터실' '책장' '왼쪽1층';

python3 adder.py '외장하드' '컴퓨터실' '책장' '왼쪽1층';

python3 adder.py '건전지' '컴퓨터실' '책장' '가운데3층';

python3 adder.py '노트북' '컴퓨터실' '책장' '왼쪽3층';

 

복사한 후 리눅스 콘솔에 붙여 넣으면

입력이 완료되고,다시 mysql에 접속하여

use location; select * from location;

을 입력하면 아래와 같이 입력된 내용을 확인할 수 있다.

처음 ssh로 아이폰과 리눅스를 연동할 때 아이폰에서 pwd명령을 보내는 예시가 있다. 2020/11/27 - [나도 개발자다!] - 단축어 활용 - 시리로 집안에 숨은 물건 찾기(1):리눅스 서버와의 연결

 

 

눈치챘겠지만, pwd 대신 python3 adder.py '노트북' '컴퓨터실' '책장' '왼쪽3층'; 이라고 쓰면 폰에서 바로 데이터 입력이 가능하다. 이는 추후에 단축어로 만들어 추가 입력을 용이하게 하겠다.

 

다음 글에서는 데이터를 검색하여 불러오는 파이썬 코드를 작성해보겠다.

 

[참고] insert into 구문 https://hyeonstorage.tistory.com/294

        python에서 mysql제어 https://yurimkoo.github.io/python/2019/09/14/connect-db-with-python.html