Karibu kwenye somo la sita! Leo tunajifunza UPDATE, amri ambayo inaruhusu kubadili au kusasisha data iliyopo tayari kwenye meza (table) yetu.
Somo la 6 python sqlite: Jinsi ya kusasisha (UPDATE) data kutoka kwenye database
Karibu kwenye somo la sita! Leo tunajifunza UPDATE, amri ambayo inaruhusu kubadili au kusasisha data iliyopo tayari kwenye meza (table) yetu.
Somo hili linafungamana na hatua tatu kuu: Kutambua data ya kubadili, Kuandaa amri ya UPDATE, na Kutekeleza mabadiliko.
Mfano:
update.py
import db_conn as dbConn
def updateData(name:str, Taken:str, Quantity:int, location:str, price:int, Id:int):
connection = dbConn.get_connection()
pointer = connection.cursor()
# UPDATE
query = "UPDATE products SET name = ?, taken_by = ?, quantity = ?, location = ?, price = ? WHERE id = ?"
data = (name, Taken, Quantity, location, price, Id)
pointer.execute(query, data)
connection.commit()
print('Usakinishaji umekamilika kikamilifu')
print()
import read
def userUpdate():
import read
try:
Id = int(input('Ingiza kitambulisho cha bidhaa > '))
Name = input('Jina jipya la bidhaa > ')
Taken = input("Jina jipya la mdeni > ")
quantity = float(input('Kiasi kipya cha bidhaa > '))
Location = input('Eneo la mdeni > ')
Price = float(input('Bei ya bidhaa > '))
updateData(Name, Taken, quantity, Location, Price, Id)
except ValueError as error:
print("Makosa " + error)
userUpdate()
Kazi hii ndiyo inasimamia upatikanaji wa data kutoka kwa mtumiaji na kuanzisha mchakato.
import read: Hii inamwita faili ya read.py ili kuonyesha data zote zilizopo kwanza. Hii ni muhimu ili mtumiaji aone wazi ID anayotaka kusasisha.
try...except: Kama ilivyo kawaida, tunalinda msimbo wetu dhidi ya makosa ya ValueError (kama mtumiaji akiingiza herufi badala ya namba kwenye ID, quantity, au Price).
Id = int(input('Ingiza kitambulisho cha bidhaa > ')): Hii ndiyo sehemu muhimu. Tunapokea ID ya bidhaa. ID inafanya kazi kama kitambulisho cha pekee, kwa hivyo tunajua haswa ni mstari gani wa data tunataka kubadili.
Name = input('Jina jipya la bidhaa > '), n.k.: Tunapokea thamani mpya za kila safu anayotaka kusasisha. Kumbuka, hata kama mtumiaji hataki kubadili jina, bado ataingiza jina la zamani.
updateData(...): Mwishowe, data yote (pamoja na ID) inapitishwa kwenye kazi ya updateData().
Kazi hii inafanya muunganiko na kutekeleza amri ya UPDATE kwa kutumia SQL.
connection = dbConn.get_connection(): Kuunganisha na database kupitia kazi yetu ya db_conn.get_connection().
pointer = connection.cursor(): Kupata cursor (pointer) ambaye atatekeleza amri.
Amri ya SQL (query): Hii ndiyo amri ya msingi ya somo la leo:
SQL
UPDATE products SET name = ?, taken_by = ?, quantity = ?, location = ?, price = ? WHERE id = ?
UPDATE products: Inaanza kwa kusema "sasisha meza ya products."
SET name = ?, taken_by = ?, ...: Hii inamwambia database "weka (SET)" thamani mpya kwa kila safu. Tunatumia placeholders (?) kwa usalama.
WHERE id = ?: Hii ndiyo sehemu muhimu sana! WHERE inalinda database nzima. Inahakikisha kwamba mabadiliko yatafanyika tu kwenye mstari mmoja ambao ID yake inalingana na ile uliyoiingiza. Bila WHERE, ungebadiisha rekodi zote kwenye meza!
data = (name, Taken, Quantity, location, price, Id): Tunatengeneza tuple ya data. Ni muhimu kwamba mpangilio wa thamani za data ulingane kabisa na mpangilio wa ? kwenye query. Hapa, Id lazima iwe mwisho kwa sababu WHERE id = ? iko mwisho.
pointer.execute(query, data): Kutekeleza amri ya UPDATE.
connection.commit(): Kuhifadhi mabadiliko kudumu kwenye database.
import read: Baada ya kusasisha, tunaiita tena read.py ili kuonyesha matokeo mapya na kuthibitisha kuwa mabadiliko yamefanyika.
Siri ya UPDATE ni WHERE! Kama unataka kusasisha data, lazima utumie WHERE kufafanua ni mstari (au mistari) gani ndio inapaswa kubadilishwa. Daima tumia ID kwa sababu ni kitambulisho cha pekee na salama.
VIDEO TUTORIAL: 👇
MWISHO:
Somo lijalo litakuwa ni DELETE (kufuta data), ambalo pia linategemea sana WHERE ID = ?.
Jiunge nasi WhatsApp kupata update zetu
Umeionaje Makala hii.. ?
Katika somo hili utaenda kujifunza namna ya kuunganisha mafaili mengi ya project na kuyaweka kwenye faili moja tu na kuweza kufikia faili zote kwa kupitia faili moja pekee
Soma Zaidi...Katika somo hili tutaenda kujifunza jinsi ya kusoma (Read) data kutoka kwenye database yetu
Soma Zaidi...Katika somo hili tutajifunza utangulizi wa SQLITE na jinsi ya kuitumia katika python
Soma Zaidi...Katita somo hili sasa tutaenda kujifunza namna ya kuunda table kwenye database ya SQLITE kwa kutumia Python
Soma Zaidi...Katika somo hili utakwenda kujifunza namna bora ya kufuta data kutoka kwenye database
Soma Zaidi...Katika somo hili utajifunza jinsi ya kuingiza data kwenye table na database tuliyoiunda katika somo lililopita
Soma Zaidi...Katika Somo hili la nane utaenda kujifunza namna ya kuchambua data kwenye database yetu kwa kupata jumla ya kiasi cha fedha kilichokopwa
Soma Zaidi...Karibu ujifunze Python Sqlite na muunganiko wa Database (Database Connection)
Soma Zaidi...