SQL 관계

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

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

관계

  • 중복 데이터를 피할 수 있습니다
  • 한 곳에서 변경하기 쉽습니다
  • 자주 필요하지 않은 정보를 테이블에서 분리할 때 유용합니다
Python으로 배우는 데이터베이스 입문

관계

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

자동 조인

stmt = select([census.columns.pop2008, 
        state_fact.columns.abbreviation])

results = connection.execute(stmt).fetchall() print(results)
[(95012, u'IL'),
 (95012, u'NJ'),
 (95012, u'ND'),
 (95012, u'OR'),
 (95012, u'DC'),
 (95012, u'WI'),
 ...
Python으로 배우는 데이터베이스 입문

Join

  • 테이블과 두 테이블의 관계를 설명하는 선택적 표현식을 받습니다
  • 관계가 사전 정의되어 있고 리플렉션으로 제공되면 표현식은 필요 없습니다
  • select() 다음, where(), order_by(), group_by()보다 앞에 옵니다
Python으로 배우는 데이터베이스 입문

select_from()

  • 기본 FROM 절을 조인으로 대체할 때 사용합니다
  • join() 절을 감쌉니다
Python으로 배우는 데이터베이스 입문

select_from() 예시

stmt = select([func.sum(census.columns.pop2000)])

stmt = stmt.select_from(census.join(state_fact))
stmt = stmt.where(state_fact.columns.circuit_court == '10')
result = connection.execute(stmt).scalar() print(result)
14945252
Python으로 배우는 데이터베이스 입문

사전 정의된 관계 없이 테이블 조인하기

  • Join은 테이블과 두 테이블의 관계를 설명하는 선택적 표현식을 받습니다
  • 두 열에서 값이 일치하는 행만 조인합니다
  • 타입이 다른 열로 조인하는 것은 피하십시오
Python으로 배우는 데이터베이스 입문

select_from() 예시

stmt = select([func.sum(census.columns.pop2000)])

stmt = stmt.select_from( census.join(state_fact, census.columns.state == state_fact.columns.name))
stmt = stmt.where( state_fact.columns.census_division_name == 'East South Central')
result = connection.execute(stmt).scalar() print(result)
16982311
Python으로 배우는 데이터베이스 입문

Ayo berlatih!

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

Preparing Video For Download...