SQL 쿼리 소개

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

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

SQL 문

  • 데이터 선택, 삽입, 갱신, 삭제
  • 데이터 생성 및 변경
Python으로 배우는 데이터베이스 입문

기본 SQL 질의

SELECT column_name FROM table_name

  • SELECT pop2008 FROM People
  • SELECT * FROM People
Python으로 배우는 데이터베이스 입문

기본 SQL 질의

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
connection = engine.connect()
stmt = 'SELECT * FROM people'
result_proxy = connection.execute(stmt)
results = result_proxy.fetchall()
Python으로 배우는 데이터베이스 입문

ResultProxy vs ResultSet

result_proxy = connection.execute(stmt)

results = result_proxy.fetchall()
  • result_proxyResultProxy
  • resultsResultSet
Python으로 배우는 데이터베이스 입문

ResultSet 다루기

first_row = results[0]
print(first_row)
('Illinois', 'M', 0, 89600, 95012)
print(first_row.keys())
['state', 'sex', 'age', 'pop2000', 'pop2008']
print(first_row.state)
'Illinois'
Python으로 배우는 데이터베이스 입문

쿼리 생성을 위한 SQLAlchemy

  • SQL 문을 파이썬식으로 구성
  • 백엔드 DB 유형 차이를 숨김
Python으로 배우는 데이터베이스 입문

SQLAlchemy로 질의하기

from sqlalchemy import Table, MetaData
metadata = MetaData()

census = Table('census', metadata, autoload=True, autoload_with=engine)
stmt = select([census])
results = connection.execute(stmt).fetchall()
Python으로 배우는 데이터베이스 입문

SQLAlchemy select 문

  • 하나 이상의 Table 또는 Column 목록 필요
  • 테이블을 사용하면 해당 모든 열 선택
stmt = select([census])

print(stmt)
'SELECT * from CENSUS'
Python으로 배우는 데이터베이스 입문

연습해 봅시다!

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

Preparing Video For Download...