Veritabanından Veri Çekme ve Veri Girme

Veritabanından belirli verileri çekip o verileri listeye aktarıyorum.
Burada düzenleyip, veritabanına geri atacağım ama doğru sıra ile yerleştirmeyi beceremiyorum. (Tabi başka yollarda olabilir)

Şurada verileri çekiyorum.

sorgu = imlec.execute("SELECT * FROM kelimeler WHERE Turkce LIKE '%-%'")

Lakin nasıl verileri doğru sıra ile gireceğimi ve nasıl belirli bir sütuna gireceğimi çözemedim.
Bu konu da kaynakarda çok yetersiz (detaysız).

Klasik bir biçimde INSERT INTO kelimeler VALUES () tarzı bir şey yapsam bile sırası doğru olmayacak. Çünkü kelimeleri seçerek aldı ve aynı sıraya göre yerleştirmeli.
Belirli sütuna özel veri işleme kısmını da anlamadım zaten.

Bu konu da yardımcı olursanız çok sevinirim. Teşekkürer.

Veri tabanından birkaç satırı örnek olarak atabilir misiniz? Bu değerler var olan bir sütun üzerine mi yoksa boş bir sütuna mı yazılacak? Bir de hangi veritabanına bağlanıyorsunuz?

1 Beğeni

Sütunların kimi boş, kimi dolu farzedelim. Niyetim iyice öğrenmek çünkü.
veritabanı = Uploadgram >veri.osmanli

Aslında anlatabileceğim ya da örnekleyebileceğim pek bir şey yok, çünkü soru basit ama Ama şöyle özetleyeyim:

Veritabanı:

id,isim,soyisim,memleket

Burada bir kişinin id,isim ve soyismi kayıtlı olsun ama memleketi eksik ya da hatalı olsun.
Bu eksikliği ya da hatayı doğru sıra ile yerleştirmek. Yani Mehmed’in ki Ahmed’e, Ahmed’in ki Muhammed’e kaymadan. Ahmed’in memleketini Ahmedin, Mehmed’in memleketini Mehmed’e, Muhammed’in memleketini ise Muhammed’e yazmalıyım.

arayüz tasarlamayı yapabiliyorsan 3 entry olan bir yer treeview yada listbox ile kolayca yapılabilir.

Verileri fetchall metodu ile alıp arayüzde listelersin, satırları 3 entrye gönderip düzenleme yaparsın. Onu db ye aktarmakta sqliteda update ile oluyor.

Youtube Traversy media desktop gui app with python tkinter diye videosu var. Ben sqlite işlemlerimi bu konudan faydalanarak yapıyorum.

INSERT INTO kullanmak veri tabanına yeni satırlar eklemek için kullanılıyor. Siz, var olan satırları güncellemek istiyorsunuz. Tüm satırları çektikten sonra bunu UPDATE etmeniz gerekiyor. UPDATE kullanırken de hangi satırın güncelleneceğini bildirmek için WHERE’den yararlanıyoruz.
Toparlayacak olursak:
sorgu = imlec.execute("SELECT ID, Turkce FROM kelimeler WHERE Turkce LIKE '%-%'") sorgu.fetchall()
sorguda istediğiniz işlemleri yaptınız diyelim. Şimdi for döngüsü ile UPDATE işlemine geçebiliriz.
for tablo_id,Turkce in sorgu:
imlec.execute("UPDATE kelimeler SET Turkce=? WHERE ID=?", (Turkce,tablo_id))
Gördüğünüz gibi veriyi çekip, gerekli düzenlemeleri yaparak tekrar geriye bastım. Burada kontrol mekanizmasını da ID sütunu üzerinden yürüttüm.

1 Beğeni

Anlatmazsaniz biz de anlayamayiz, zira “sutuna ozel veri isleme” teknik bir terim degil; bu baslikli bir kitap veya makale de yok.

Bunun icin INSERT cumleleri kullaniliyor. INSERT, verilen verileri verilen sutunlara verilen sira ile yerlestirir.

ORDER BY kullanmayan SELECT’ler satirlari sirasiz dondurur.

O zaman soruyu dogrudan sormak isteyebilirsiniz.

INSERT INTO "Veritabanı" ("isim", "memleket") VALUES ('Ahmed', 'memleket1');
INSERT INTO "Veritabanı" ("isim", "memleket") VALUES ('Mehmed', NULL);
INSERT INTO "Veritabanı" ("isim", "memleket") VALUES ('Muhammed', 'memleket3');