목차
파이썬 ORM이란? SQLAlchemcy 란?
ORM(Object Relational MApper)이라는 이름에서 알 수 있듯이 모든 기능이 객체(Object)로 동작합니다. 즉, 객체 내의 사용법만 알면 쉽게 Database를 생성, 수정, 삭제가 가능 합니다. 참고로 ORM은 서로 연결되지 않는 시스템 (여기서는 SQLite 데이터베이스와 파이썬)을 Mapping 시켜주는 객체 언어 입니다.
앞서 SQLite를 명령어를 직접 입력해서 파이썬으로 DB를 생성하는 방법에 대해 알아보았습니다. SQLAlchemy는 SQL 툴킷으로 ORM(Object Relational MApper)입니다. 파이썬 라이브러리로 내부의 클래스를 사용해서 쉽게 데이터베이스에 맴핑(Mapping)이 가능 합니다. SQLAlchemy는 SQLite 뿐만 아니라 Oracle, MySQL과 같은 주요 SQL DB를 지원 합니다. 아래는 지원하는 DB입니다.
- Firebird
- Microsoft SQL Server
- MySQL
- Oracle
- PostgreSQL
- SQLite
- Sybase
시작에 앞서 아래와 같이 SQLAlchemy를 설치합니다.
pip install sqlalchemy
파이썬 SQLAlchemcy 테이블 만들기
이번에는 간단한 예제로 테이블 만는 방법에 대해 알아보고 결과와 코드를 설명 드리겠습니다.
예제 코드>>
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///sales.db', echo = True)
meta = MetaData()
company = Table(
'sales', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('addr', String),
)
meta.create_all(engine)
2번 라인: sales.db라는 파일로 데이터베이스를 생성합니다.
3번 라인: MetaData 객체를 사용해서 테이블을 유지 합니다.
5~9번 라인: 테이블의 내용을 정의합니다.
11번 라인: meta 객체의 create_all 메소드를 사용해서 테이블을 생성합니다.
결과>>
파이썬 SQLAlchemcy 데이터 쓰기(insert)
DB에 데이터 추가는 insert를 사용해서 처리합니다. 아래 예제를 통해 쉽게 알아 보겠습니다.
예제 코드>>
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///sales.db', echo = True)
meta = MetaData()
company = Table(
'sales', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('addr', String),
)
ins = company.insert().values(name = "David", addr = "Seoul")
conn = engine.connect()
result = conn.execute(ins)
12번 라인: 테이블 구조를 유지하고 해당 테이블에서 insert().values를 사용해서 값을 입력 합니다.
13번 라인: 데이터베이스에 연결합니다.
14번 라인: insert 메소드를 실행합니다.
결과>>
앞서 추가한 James에 David를 이번에 추가하였습니다.
파이썬 SQLAlchemcy 데이터 여러개(Multiple) 입력하기
이번에는 한번에 여려개의 데이터를 쓰는 방법에 대해 알아보겠습니다.
예제 코드>>
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
engine = create_engine('sqlite:///sales.db', echo = True)
meta = MetaData()
company = Table(
'sales', meta,
Column('id', Integer, primary_key = True),
Column('name', String),
Column('addr', String),
)
data = [
{'name':'Miller', 'addr' : 'Busan'},
{'name':'Suzy','addr' : 'Daegu'},
]
conn = engine.connect()
result = conn.execute(company.insert(),data)
12~15번 라인: data로 넣을 입력값을 리스트로 만듭니다.
18번 라인: 리스트 값을 입력하고 insert를 실행합니다.
결과>>
'데이터베이스(db) > SQLite' 카테고리의 다른 글
[Python]flask와 sqlite(데이터베이스) 연결하고 웹화면에 띄우기 (0) | 2022.11.04 |
---|---|
[Python] Sqlalchemy로 데이터베이스 읽기, 조건문 설정하기 (0) | 2022.10.21 |
[Python] SQLite, CSV 쓰고 읽기, DB에 옮기기 (0) | 2022.09.27 |
[Python] SQLite 데이터 하나 쓰기, 여러개 쓰기 삭제하기 조건걸기(Write, Delete) (0) | 2022.09.23 |
[Python] SQLite 테이블 if not 으로 검색 후 생성, 삭제(drop, delete) (0) | 2022.09.22 |