Łączenie z bazą danych

Wprowadzenie do baz danych w Pythonie

Jason Myers

Co-Author of Essential SQLAlchemy and Software Engineer

Poznaj SQLAlchemy

  • Dwa główne komponenty
    • Core (skupiony na modelu relacyjnym)
    • ORM (skupiony na modelu danych użytkownika)
Wprowadzenie do baz danych w Pythonie

Istnieje wiele typów baz danych

  • SQLite
  • PostgreSQL
  • MySQL
  • Microsoft SQL Server
  • Oracle SQL
  • I wiele innych
Wprowadzenie do baz danych w Pythonie

Łączenie z bazą danych

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
connection = engine.connect()
  • Engine: wspólny interfejs do bazy danych w SQLAlchemy
  • Connection string: wszystkie dane potrzebne do znalezienia bazy danych (oraz logowania, jeśli wymagane)
Wprowadzenie do baz danych w Pythonie

Kilka słów o connection strings

driverdialect.png

        Sterownik + dialekt

Wprowadzenie do baz danych w Pythonie

Kilka słów o connection strings

filename.png

                                                                                               Nazwa pliku

Wprowadzenie do baz danych w Pythonie

Co zawiera baza danych?

Przed wykonaniem zapytań warto sprawdzić zawartość bazy danych, np. listę tabel:

from sqlalchemy import create_engine

engine = create_engine('sqlite:///census_nyc.sqlite')
print(engine.table_names())
['census', 'state_fact']
Wprowadzenie do baz danych w Pythonie

Refleksja

Refleksja odczytuje bazę danych i tworzy obiekty Table SQLAlchemy

from sqlalchemy import MetaData, Table

metadata = MetaData()
census = Table('census', metadata, autoload=True, autoload_with=engine)
print(repr(census))
Table('census', MetaData(bind=None), Column('state', VARCHAR(
length=30), table=<census>), Column('sex', VARCHAR(length=1),
table=<census>), Column('age', INTEGER(), table=<census>),
Column('pop2000', INTEGER(), table=<census>), Column('pop2008',
INTEGER(), table=<census>), schema=None)
Wprowadzenie do baz danych w Pythonie

Czas na ćwiczenia!

Wprowadzenie do baz danych w Pythonie

Preparing Video For Download...