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ć metodyexecute()
lubexecute_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ć metodywhere()
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ć metodyvalues()
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ć metodywhere()
do określenia warunku WHERE, a następnie użyć metodyvalues()
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ć metodywhere()
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()