본문 바로가기
FastCampus/한 번에 끝내는 파이썬 웹 개발 초격차 패키지 Online.

한 번에 끝내는 파이썬 웹 개발 초격차 패키지 57일차

by Dream_World 2021. 11. 1.

파이썬 심화 문법

오늘은 설레는 마음으로 첫 출근을 하였다. 어색함이 맴도는 가운데 동기분들끼리 인사도 나누며 서로에 대해 알아가는 시간을 가져보았다. 같은 부서로 정해진 동기는 2명이었으며 팀은 다르지만 같은 소속을 나를 포함하여 3명이 되었다. 3명이 함께 으쌰으쌰 하기로 했고 서로에게 도움이 되어주기로 했다. 내가 회사에서 불린 이름 중고신입 생초보 다른 직무에서 이직함으로써 나를 보는 시선이 이러하였다. 인사팀장님과 만남 이후로 노트북 한 대를 받고 각자 자리 가져가서 기초적인 세팅을 진행하였다. 먼저는 프린터 설치 이후에 알약을 세팅을 완료했으며 보완이 너무 뛰어난 나머지 라이선스가 없는 프로그램은 설치조차 할 수가 없다는 부분이었다. 모든 건 인증을 해야 했으며 인터넷 검색도 조심스레 하게 되는 부분이었다. 회사에서 제공하는 웹 사이트에서 규정 및 결제 부분을 훑어볼 수 있었으며 개인 PC를 진단 스크립트로 구동 후 실질적으로 어떻게 보완해야 하는지 직접 설정값을 바꿔가면서 테스트해 볼 수 있었다.


데이터베이스

SQL 파이썬에서 Sqlite3 사용방법

사용순서

1. DataBase 파일 열기

2. 커서(Cursor) 생성

3. SQL 명령 실행

4. 커밋 또는 콜백

5. 데이터베이스 닫기

 

CREATE

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

# 커서 생성
cur = conn.cursor()

# SQL 명령 작성
CREATE_SQL = """
    CREATE TABLE IF NOT EXISTS item(
        id integer primary key autoincrement,
        code text not null,
        name text not null,
        price integer not null
    );
"""

# SQL 명령 실행
cur.execute(CREATE_SQL)

# 데이터베이스 닫기
conn.close()

 

INSERT

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

# 커서 생성
cur = conn.cursor()

# SQL 명령 작성
INSERT_SQL = "INSERT INTO item(code, name, price) VALUES (?, ?, ?);"

# 데이터 여러개 한번에 추가하기
data = (
    ('A00002', '에어컨 20평형', 350000),
    ('A00003', '최신형 스마트폰', 800000),
    ('A00004', '가성비 노트북', 650000)
)

# SQL 명령 실행 (하나만 적용)
# cur.execute(INSERT_SQL, ('A00001', '게이밍 마우스', 38000))

# SQL 명령 실행 (여러개 적용)
cur.executemany(INSERT_SQL, data)

# 커밋 : INSERT, UPDATE, DELETE는 commit을 해야 실제 데이터베이스에 반영된다.
conn.commit()

# 데이터베이스 닫기
conn.close()

 

SELECT

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

# 커서 생성
cur = conn.cursor()

# SQL 명령 작성
# SELECT_SQL = "SELECT * FROM item;" # 전체 다 출력
# SELECT_SQL = "SELECT * FROM item WHERE code = 'A00002';" # code = A00002만 출력
SELECT_SQL = "SELECT * FROM item LIMIT 2;" # 상위 2개만 출력

# SQL 명령 실행
cur.execute(SELECT_SQL)

rows = cur.fetchall()
for row in rows:
    print(row)

# 데이터베이스 닫기
conn.close()

 

UPDATE

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

# 커서 생성
cur = conn.cursor()

# SQL 명령 작성
UPDATE_SQL = "UPDATE Item set price = 650000 WHERE code = 'A00002';"

# SQL 명령 실행
cur.execute(UPDATE_SQL)

# 커밋
conn.commit()

# 데이터베이스 닫기
conn.close()

 

DELETE

# 모듈 추가
import sqlite3

# 데이터베이스 열기
conn = sqlite3.connect('./myvenv/Chapter05/SQL_DDL.db')

# 커서 생성
cur = conn.cursor()

# SQL 명령 작성
DELETE_SQL = "DELETE FROM Item WHERE code = 'A00002';"

# SQL 명령 실행
cur.execute(DELETE_SQL)

# 커밋
conn.commit()

# 데이터베이스 닫기
conn.close()

 

 

오늘은 Sqlite3을(를) 파이썬에서 사용할 수 있는 학습을 해보았다. 오! 생각보다 나쁘지 않았다. SQL 쿼리문을 그대로 쓰는 형태로 입력함으로써 Sqlite3 모듈을 사용한다는 메리트를 볼 수 있었다. 당연히 소문자 대문자 틀려서 오류도 볼 수 있었다. 

오류 내용 :

sqlite3.OperationalError: database is locked

데이터베이스 락인 걸렸다길래 테이블을 지우고 다시 생성도 해보고 하다가 결국에는 소문자로 통일 함으로써 해결할 수 있었다. 또한, DML(조작 언어)는 commit의 중요성을 알 수 있었으며 해당 조건이 요구하는 실행만 성립하면 데이터베이스는 자연스레 인식하고 정상적인 값을 출력해서 보여주었다. 실습을 통해 지웠다가 생성했다가를 수도 없이 반복하면서 한 차례 이해한듯하다.

57일 차는 여기서 마무리하고자 합니다.


패스트캠퍼스 링크 : https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

 

댓글