Wczytanie danych zapytaniem SQL

Moduł sqlalchemy pozwala na wykonywanie zapytań SQL za pomocą obiektów Python, co umożliwia użycie różnych parametrów do dynamicznego tworzenia zapytań. Oto kilka przykładów parametrów, które można użyć w zapytaniach SQL za pomocą sqlalchemy:

  • bindparam() – tworzy parametr zapytania, który może być użyty w zapytaniu. Parametry te są oznaczane za pomocą znaku : i nazwy (np. :nazwa). Następnie można użyć metody execute() lub execute_bindparam() do wykonania zapytania i podania wartości parametrów.
  • select() – tworzy obiekt SELECT, który może być użyty do wybierania danych z tabel. Można użyć metody where() do dodania warunku WHERE, order_by() do dodania sortowania itp.
  • insert() – tworzy obiekt INSERT, który może być użyty do wstawiania nowych wierszy do tabeli. Można użyć metody values() do określenia wartości do wstawienia.
  • update() – tworzy obiekt UPDATE, który może być użyty do aktualizowania istniejących wierszy w tabeli. Można użyć metody where() do określenia warunku WHERE, a następnie użyć metody values() do określenia nowych wartości.
  • delete() – tworzy obiekt DELETE, który może być użyty do usuwania wierszy z tabeli. Można użyć metody where() do określenia warunku WHERE.

Oto przykład użycia parametrów zapytań SQL za pomocą sqlalchemy:

import sqlalchemy
from sqlalchemy.sql import select, insert, update, delete, bindparam

# Połącz się z bazą danych
engine = sqlalchemy.create_engine('sqlite:///baza.db')

# Utwórz SELECT z parametrem WHERE
stmt = select([table]).where(table.columns.col1 == bindparam('param'))

# Utwórz INSERT z parametrami
stmt = insert(table).values(col1=bindparam('param1'), col2=bindparam('param2'))

# Utwórz UPDATE z parametrem WHERE i nowymi wartościami
stmt = update(table).where(table.columns.col1 == bindparam('param')).values(col2=bindparam('new_value'))

# Utwórz DELETE z parametrem WHERE
stmt = delete(table).where(table.columns.col1 == bindparam('param'))

# Wykonaj zapytanie z podanymi parametrami
conn = engine.connect()
result = conn.execute_bindparam(stmt, param='wartość')

# Wczytaj dane do DataFrame
df = pd.DataFrame(result.fetchall())
df.columns = result.keys()

# Zamknij połączenie z bazą danych
conn.close()

sqlalchemy –> doc