본문 바로가기

수업정리/Fundamental

[Python] 한글 유니코드 6 - sqlite3, test_sqldb.py

참고 사이트 : Command Line Shell For SQLite

sqlite3 hangulDB.sqlite3  : 우리의 DB 파일에 연결

.table : table 들 출력

.output hangulDB.sql : output filename 지정

.dump / .exit : 종료


파일 백업

sqlite3 hangulDB.test : 새로운 데이터 파일 만들고 연결 ( 파일이 없다면 )

.read hangulDB.sql : 한글 DB 불러오기


select * from han_characters;  테이블 안에 있는 모든 튜플 출력

select character, freq from han_characters;  테이블에 있는 charater, freq 에 해당하는 튜플 출력

select * from han_charaters where freq>10000;  조건에 해당하는 튜플들 출력

.mode table : 이후에 출력되는 튜플 보기좋게 테이블 형식으로 보여줌

.mode list : 이후에 출력되는 튜플 리스트처럼 보여줌

select count(*) from han_characters where freq>10000;  해당 조건 튜플 개수

select * from han_letters where letter = 'ㅏ' or letter = 'ㅇ'; 해당 조건 만족하는튜플 보여줌


미리 명령어 저장해두고 실행하기

run_sql.sh

#!/bin/sh

sqlite3 hangulDB.sqlite3 "select * from han_characters;"

DBNAME=hangulDB.sqlite3
sqlite3 $DBNAME "select * from han_characters;"

sqlite3 $DBNAME "select * from han_characters;" > han_chars.list  # 결과 새 파일로 저장

OUTNAME=/mount/cs4ks_2023/ug20191044/han_chars.list
sqlite3 $DBNAME "select * from han_characters;" > $OUTNAME

echo $OUTNAME
head -n 3 $OUTNAME

sh run.sql.sh 로 실행시키면 위 커멘드들이 실행된다.

변수 선언 해주고 $변수이름 을 사용해서 사용 가능하다.


우리가 원하는 db 에 연결해서 함수를 사용해 명령어를 직접 실행시켜 결과를 받는 코드

test_sqldb.py

 from han_sqldb import *
 import time

 start = time.time()
 conn=connect_db('hangulDB.sqlite3')

 conditionResult=select(conn, 'han_characters', '*', 'freq > 3000')
 print(conditionResult)
 end=time.time()
 print(end-start)

han_sqldb 에 있는 함수를 이용해 conn 에 DB 연결하고 select 함수로 매개변수로 table, field, condition 을 주어 결과값을 받고 출력한다.