Tek bir satır ekleme
SQLAlchemy ile insert işlemi yapmanın birkaç yolu vardır; ancak biz select ifadesiyle aynı kalıbı izleyen yönteme odaklanacağız.
Bu yöntemde, tabloyu argüman olarak belirttiğin bir insert ifadesi kullanırsın ve eklemek istediğin verileri .values() yöntemiyle anahtar kelime argümanları olarak sağlarsın. Örneğin, my_table içinde my_col_1 ve my_col_2 sütunları varsa, insert(my_table).values(my_col_1=5, my_col_2="Example") ifadesi my_table içinde my_col_1 değeri 5 ve my_col_2 değeri "Example" olan bir satır oluşturur.
Sözdizimindeki farka dikkat et: Var olan bir ifadeye where ifadesi eklerken, sütun adının yanı sıra tablonun adını da dahil ederiz; örneğin new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Bunun nedeni, mevcut ifadenin birden fazla tabloyu içerebilecek olmasıdır.
Öte yandan, bir kaydı yalnızca tek bir tabloya insert edebilirsin; bu yüzden values() kullanarak ekleme yaparken tablo adını belirtmene gerek yoktur; ör. stmt = insert(my_table).values(my_col = 10).
Burada tablonun adı data. Tablonun yapısını incelemek için konsolda repr(data) çalıştırabilirsin.
Bu egzersiz, kursun bir parçasıdır
Python ile Veritabanlarına Giriş
Egzersiz talimatları
sqlalchemymodülündeninsertveselectiçe aktar.datatablosu içinnamealanını'Anna',countalanını1,amountalanını1000.00vevalidalanınıTrueolarak ayarlayan bir insert ifadesiinsert_stmtoluştur.insert_stmtifadesiniconnectionile çalıştır ve sonucuresultsiçinde sakla.- Kaç kaydın eklendiğini görmek için
results'ın.rowcountözniteliğini yazdır. namedeğeri'Anna'olan kaydı sorgulamak içindataüzerinde bir select ifadesi oluştur.- Select ifadesini çalıştırmanın sonuçlarını yazdırmak için çözümü çalıştır.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# Import insert and select from sqlalchemy
from sqlalchemy import ____, ____
# Build an insert statement to insert a record into the data table: insert_stmt
insert_stmt = insert(____).values(name=____, ____, ____, ____)
# Execute the insert statement via the connection: results
results = connection.execute(____)
# Print result rowcount
print(____)
# Build a select statement to validate the insert: select_stmt
select_stmt = select([data]).where(____ == ____)
# Print the result of executing the query.
print(connection.execute(select_stmt).first())