데이터베이스(db)/SQLite

[Python] SQLAlchemcy란? 테이블 생성, 데이터 입력(SQLite, ORM)

끄적끄적아무거나 2022. 10. 19. 09:02
반응형

 

목차

     

     

     

     

     

     

    파이썬 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를 실행합니다.

     

     

    결과>>

     

     

     

     

     

     

     

     

     

    반응형