250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

데이터 놀이터

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 4. DB API 본문

코드스테이츠 AIB 17

Section 4 - Sprint 1. 환경과 관계형 데이터 베이스 - 4. DB API

jjjk84 2023. 3. 23. 00:28
728x90

오늘의 키워드

  • DB API
  • 클라우드 DB
  • PostgreSQL
  • sqlite3
  • psycopg2

개념 정리

 

1. Python DB API

 

  • DB API(Application Programming Interface)
    • python과 DB 간 상호작용을 위해 활용하는 규칙, 툴
    • sqlite3 : 파이썬 내 가벼운 파일형 DB, 고급 기능을 구현하기에는 무리가 있지만 단순 실험, 개발 단계에서 활용하기 좋음

 

import sqlite3

## 1. 데이터베이스 파일 생성 및 연결
conn = sqlite3.connect('DB명')

## 2. 커서(소통 도구) 생성
cur = conn.cursor()

## 3. 커서 메소드 활용
cur.execute(쿼리문)

## 4. commit
conn.commit()

## 5. 결과 조회
cur.execute("SELECT * FROM 테이블명;")
cur.fetchall() # 전체 조회
cur.fetchmany(a) # a개만큼 조회
cur.fetchone() # 한개 조회

#### 조회시 조회한만큼 커서가 이동, cur.execute("SELECT * FROM 테이블명;")를 통해 커서 위치 초기화가능

 

 

2. 클라우드 DB

 

  • 원격으로 관리되는 DB로 해당 DB에 대한 접근 정보가 있어야 함
  • URI 형식 필요

 

## URI 구성
서비스://유저_이름:유저_비밀번호@호스트:포트번호/경로

 

  • ElephantSQL : PostgreSQL기반 클라우드 시스템
  • psycopg2 라이브러리를 활용(API라고 할 수 있음)하여 PostreSQL과 python을 연결 가능

 

## psycopg2 라이브러리 설치
pip install psycopg2 
##### 설치가 되지 않을 경우
pip install psycopg2-binary

## 데이터베이스 연결
import psycopg2

conn = psycopg2.connect(
    host="서버 호스트 주소",
    database="데이터베이스 이름",
    user="유저 이름",
    password="유저 비밀번호")
    
## 이후 sqlite3와 동일

 

코드 정리

 

## Table 반복 실험시 문제 생기지 않도록 하는 구문
cur.execute("DROP TABLE IF EXISTS 테이블명;")
cur.execute("CREATE TABLE IF NOT EXISTS 테이블명()")

## f구문 활용
f"~~{변수}~~"

## 사전 형식 ({ : })
사전.items() -> key, value 출력
사전.keys() -> key
사전.values() -> value 출력

## python 내 CSV 라이브러리로 csv 불러오기 (Pandas X)
import csv
with open('csv파일명', 'r', newline='') as f:
	reader = csv.reader(f)
    for row in reader:
    	print(row)
        
##### next(reader) : 다음 행 읽기

## enumerate() : index와 값 출력

 

더 알아봐야할 것

 

 

csv — CSV 파일 읽기와 쓰기 — Python 3.8.16 문서

csv — CSV 파일 읽기와 쓰기 소스 코드: Lib/csv.py 소위 CSV (Comma Separated Values – 쉼표로 구분된 값) 형식은 스프레드시트와 데이터베이스에 대한 가장 일반적인 가져오기 및 내보내기 형식입니다. CS

docs.python.org

 

728x90