Introductie tot databases

Gestroomlijnde data-inname met pandas

Amany Mahfouz

Instructor

Relationele databases

  • Data over entiteiten staat in tabellen
  • Elke rij/record is een instantie van een entiteit
  • Elke kolom bevat een attribuut
  • Tabellen kunnen gekoppeld worden via unieke sleutels
  • Ondersteunen meer data, meerdere gelijktijdige gebruikers en kwaliteitscontroles
  • Datatypes zijn per kolom gespecificeerd
  • SQL (Structured Query Language) om met databases te werken
Gestroomlijnde data-inname met pandas

Veelgebruikte relationele databases

Microsoft SQL Server-logo

Oracle-logo

  • SQLite-databases zijn computerbestanden

PostgreSQL-logo

SQLite-logo

Gestroomlijnde data-inname met pandas

Verbinden met databases

  • Twee stappen:
    1. Maak een connectie met de database
    2. Bevraag de database

Database clipart

Gestroomlijnde data-inname met pandas

Een database-engine maken

SQLAlchemy-logo

  • sqlalchemy’s create_engine() maakt een engine voor databaseverbindingen
    • Vereist een string-URL van de database
    • SQLite-URL-formaat: sqlite:///filename.db
Gestroomlijnde data-inname met pandas

Databases bevragen

  • pd.read_sql(query, engine) om data uit een database te laden
  • Argumenten
    • query: String met SQL-query om uit te voeren of tabel om te laden
    • engine: Connectie-/database-engineobject
Gestroomlijnde data-inname met pandas

SQL-herhaling: SELECT

  • Gebruikt om data uit een database op te vragen
  • Basis-syntaxis:
    SELECT [column_names] FROM [table_name];
    
  • Alles uit een tabel ophalen:
    SELECT * FROM [table_name];
    
  • Codestijl: keywords in HOOFDLETTERS, puntkomma (;) om af te sluiten
Gestroomlijnde data-inname met pandas

Data ophalen uit een database

# Laad pandas en sqlalchemy's create_engine
import pandas as pd
from sqlalchemy import create_engine

# Maak een database-engine voor verbindingen engine = create_engine("sqlite:///data.db")
# Laad de volledige weather-tabel op naam weather = pd.read_sql("weather", engine)
Gestroomlijnde data-inname met pandas
# Maak een database-engine voor verbindingen
engine = create_engine("sqlite:///data.db")

# Laad de volledige weather-tabel met SQL weather = pd.read_sql("SELECT * FROM weather", engine)
print(weather.head())
       station                         name  latitude  ...   prcp  snow  tavg tmax  tmin
0  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         52    42
1  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    39
2  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         48    42
3  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.00   0.0         51    40
4  USW00094728  NY CITY CENTRAL PARK, NY US  40.77898  ...   0.75   0.0         61    50

[5 rows x 13 columns]
Gestroomlijnde data-inname met pandas

Laten we oefenen!

Gestroomlijnde data-inname met pandas

Preparing Video For Download...