데이터베이스와 테이블 생성

Python으로 배우는 데이터베이스 입문

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

데이터베이스 생성

  • 데이터베이스 종류에 따라 다릅니다
  • PostgreSQL, MySQL은 초기화를 위한 CLI 도구가 있습니다
  • SQLite는 create_engine()로 DB와 파일이 없으면 생성합니다
Python으로 배우는 데이터베이스 입문

테이블 구성

from sqlalchemy import (Table, Column, String, 
       Integer, Decimal, Boolean)

employees = Table('employees', metadata, Column('id', Integer()), Column('name', String(255)), Column('salary', Decimal()), Column('active', Boolean()))
metadata.create_all(engine)
engine.table_names()
[u'employees']
Python으로 배우는 데이터베이스 입문

테이블 생성

  • 리플렉션 때와 같이 Table 객체를 사용합니다
  • autoload 인수 대신 Column 객체를 지정합니다
  • MetaData 인스턴스의 create_all()로 실제 DB에 테이블을 생성합니다
  • 테이블 업데이트는 Alembic 또는 순수 SQL 등 다른 도구를 사용합니다
Python으로 배우는 데이터베이스 입문

테이블 생성 - 추가 열 옵션

  • unique: 해당 열의 모든 값은 고유해야 합니다
  • nullable: 해당 열이 비어 있을 수 있는지 결정합니다
  • default: 값이 없을 때 기본값을 설정합니다
Python으로 배우는 데이터베이스 입문

추가 옵션을 포함한 테이블 구성

employees = Table('employees', metadata,
       Column('id', Integer()), 
       Column('name', String(255), unique=True, nullable=False), 
       Column('salary', Float(), default=100.00),          
       Column('active', Boolean(), default=True))

employees.constraints
{CheckConstraint(... 
Column('name', String(length=255), table=<employees>, nullable=False), 
Column('salary', Float(), table=<employees>, 
       default=ColumnDefault(100.0)), 
Column('active', Boolean(), table=<employees>, 
       default=ColumnDefault(True)), ...
UniqueConstraint(Column('name', String(length=255), 
                 table=<employees>, nullable=False))}
Python으로 배우는 데이터베이스 입문

연습해 봅시다!

Python으로 배우는 데이터베이스 입문

Preparing Video For Download...