카테고리 없음

Shell, Python - sqlite3

GreenBNN 2023. 5. 12. 14:37
 import sqlite3
 cnn = sqlite3.connect("/home/ug20191044/cs4ks/testDB.db")
 cursor = cnn.cursor()
 cursor.execute("select * from table1")
 print(cursor.fetchall())
 cnn.close()

커멘드에서 python 파일을 실행하는 것처럼

쉘에서 스크립트를 작성해 python 파일들을 실행시켜 보도록 한다.

run.sh

#!/bin/sh
#/bin/python Hangul.py  # Hangul.py 실행
outfn=result.txt
/bin/python Hangul.py > $outfn
wc -w $outfn
echo "$outfn is saved"

우리는 result.txt 파일을 열어서 Hangul.py 의 실행 결과를 저장할 수 있다.

만약 /bin/python Hangul.py >> $outfn 으로 한다면 기존 파일에 add 하여 저장한다.

 

cd ~ : 하위 디렉토리로

cd - : 이전 디렉토리로

$PWD : 현제 디렉토리 경로

$HOME : 홈 디렉토리 경로


CREATE DATABASE dbname; / create database dbname;
새로운 데이터베이스를 생성합니다.


CREATE TABLE tablename ( fieldname1 type1, fieldname2 type2, …);
새로운 테이블을 생성합니다. 테이블 이름과 각 필드의 이름과 타입을 지정해줍니다.


CREATE TABLE tablename IF NOT EXISTS ( …..);
테이블이 이미 존재할 경우 무시하고, 존재하지 않을 경우에만 테이블을 생성합니다.


INSERT INTO tablename( fieldname1, fieldname2, …) VALUES (value1, value2, ….);
새로운 레코드를 테이블에 추가합니다. 필드 이름과 값들을 지정해줍니다.


SELECT field1, field2, … FROM tablename;
테이블에서 필드들의 값을 검색합니다. 검색할 필드 이름을 지정해줍니다.


DROP TABLE tablename;
테이블을 삭제합니다.

DROP DATABASE databasename;
DB를 삭제합니다.

SELECT * FROM tablename WHERE fieldname1=value1;
특정 필드의 값을 가진 레코드를 검색합니다.



UPDATE tablename SET field1=val2 WHERE field1 LIKE pattern;
특정 패턴을 가지고 있는 필드의 값을 변경합니다.


DELETE FROM tablename WHERE field1=val2;
특정 필드의 값을 가진 레코드를 삭제합니다.


UPDATE tablename SET field1=val1 WHERE field2=val2;
조건에 맞는 레코드의 값을 업데이트합니다.


DELETE FROM tablename WHERE condition;
조건에 맞는 레코드를 삭제합니다.


SELECT * FROM tablename WHERE condition GROUP BY field1;
조건에 맞는 레코드를 필드1을 기준으로 그룹화하여 검색합니다.


SELECT * FROM tablename ORDER BY field1 ASC|DESC;
필드1을 기준으로 오름차순 또는 내림차순으로 정렬하여 검색합니다.


SELECT COUNT(fieldname) FROM tablename WHERE condition;
조건에 맞는 레코드의 개수를 세어서 검색합니다.


SELECT SUM(numericfield1) FROM tablename WHERE condition;
조건에 맞는 레코드의 numericfield1 값을 합산하여 검색합니다.


SQLite 를 깔고 실행하고 만든 .db 파일을 파이썬에서 사용해보자

\

파이썬을 실행해서 import sqlite3 를 해준다.

우리의 .db 파일을 연결해주고 데이터를 읽는다.

이때 SQL 쿼리문을 실행시키고 그 반환값을 받아 출력할 수 있다.

 

우리의 db 파일을 ssh 에 올리려면

scp .\testDB.db ug20191234@163.239.103.144:~/cs4ks/ 

해주면 된다.

그리고 ssh 에서 우리의 .db 파일을 사용하는 코드를 짜보면

test_db.py

 import sqlite3
 cnn = sqlite3.connect("/home/ug20191234/cs4ks/testDB.db")
 cursor = cnn.cursor()
 cursor.execute("select * from table1")
 print(cursor.fetchall())
 cnn.close()