Menyisipkan satu baris
Ada beberapa cara untuk melakukan insert dengan SQLAlchemy; namun, kita akan berfokus pada cara yang mengikuti pola yang sama seperti pernyataan select.
Cara ini menggunakan pernyataan insert dengan menyebutkan tabel sebagai argumen, lalu menyuplai data yang ingin Anda sisipkan ke dalam nilai melalui metode .values() sebagai argumen kata kunci. Sebagai contoh, jika my_table memiliki kolom my_col_1 dan my_col_2, maka insert(my_table).values(my_col_1=5, my_col_2="Example") akan membuat satu baris di my_table dengan nilai pada my_col_1 sama dengan 5 dan nilai pada my_col_2 sama dengan "Example".
Perhatikan perbedaan sintaksnya: ketika menambahkan pernyataan where ke pernyataan yang sudah ada, kita menyertakan nama tabel serta nama kolom, misalnya new_stmt = old_stmt.where(my_tbl.columns.my_col == 15). Ini diperlukan karena pernyataan yang ada bisa melibatkan beberapa tabel.
Di sisi lain, Anda hanya dapat melakukan insert ke satu tabel, sehingga Anda tidak perlu menyertakan nama tabel saat menggunakan values() untuk menyisipkan, contohnya stmt = insert(my_table).values(my_col = 10).
Di sini, nama tabelnya adalah data. Anda dapat menjalankan repr(data) di konsol untuk memeriksa struktur tabelnya.
Latihan ini adalah bagian dari kursus
Pengantar Basis Data di Python
Petunjuk latihan
- Impor
insertdanselectdari modulsqlalchemy. - Bangun pernyataan insert
insert_stmtuntuk tabeldataguna menetapkannamemenjadi'Anna',countmenjadi1,amountmenjadi1000.00, danvalidmenjadiTrue. - Eksekusi
insert_stmtdenganconnectiondan simpan ke dalamresults. - Cetak atribut
.rowcountdariresultsuntuk melihat berapa banyak rekaman yang disisipkan. - Bangun pernyataan select untuk mengkueri
datauntuk rekaman denganname'Anna'. - Jalankan solusi untuk mencetak hasil eksekusi pernyataan select.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
# 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())