Relații SQL

Introducere în baze de date în Python

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Relații

  • Permit evitarea datelor duplicate
  • Facilitează modificările într-un singur loc
  • Utile pentru a extrage informații rar folosite dintr-un tabel
Introducere în baze de date în Python

Relații

Introducere în baze de date în Python

Uniri automate

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'),
 ...
Introducere în baze de date în Python

Join

  • Acceptă un tabel și o expresie opțională care descrie relația dintre cele două tabele
  • Expresia nu este necesară dacă relația este predefinită și disponibilă prin reflecție
  • Se plasează imediat după clauza select() și înaintea oricărei clauze where(), order_by() sau group_by()
Introducere în baze de date în Python

select_from()

  • Înlocuiește clauza FROM implicită cu o unire
  • Încapsulează clauza join()
Introducere în baze de date în Python

Exemplu 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
Introducere în baze de date în Python

Unirea tabelelor fără relație predefinită

  • Join acceptă un tabel și o expresie opțională care descrie relația dintre cele două tabele
  • Unește doar datele care corespund între cele două coloane
  • Evitați asocierea coloanelor de tipuri diferite
Introducere în baze de date în Python

Exemplu 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
Introducere în baze de date în Python

Să exersăm!

Introducere în baze de date în Python

Preparing Video For Download...