piton

Python kullanarak SQL ve NoSQL Veritabanlarına CRUD İşlemleri

Python kullanarak SQL ve NoSQL Veritabanlarına CRUD İşlemleri
Bir uygulamayla kullanılabilecek iki ana veritabanı türü vardır: ilişkisel veritabanları (SQL) ve ilişkisel olmayan veritabanları (NoSQL). Her ikisi de yaygın olarak kullanılmaktadır ancak birini seçmek, depolanacak verilerin türüne bağlıdır. Veritabanlarında gerçekleştirilebilecek dört temel işlem vardır: oluşturma, okuma, güncelleme ve silme (CRUD).

Herhangi bir programlama dilini kullanarak veritabanlarıyla etkileşime girebiliriz veya bir GUI kullanarak veritabanıyla etkileşime girmemize izin veren bir yazılım programı kullanabiliriz. Bu yazıda, veritabanlarını tartışacağız ve Python programlama dilini kullanarak onlarla nasıl etkileşim kuracağınızı göstereceğiz.

İlişkisel Veritabanları (SQL)

İlişkisel veritabanları (SQL), ilişkisel olmayan veritabanlarından (NoSQL) şema açısından farklıdır. Şema, saklayacağınız verilerin yapısını tanımlayan bir şablondur. İlişkisel veritabanlarında, verileri depolamak için tablolar oluştururuz. Bir tablonun şeması, tablo oluşturulduğunda tanımlanır. Örneğin, öğrencilerle ilgili verileri ilişkisel bir veritabanında depolamak istiyorsak, o zaman bir öğrenci tablosu oluşturacağız ve tablonun adını, kayıt numarasını, notunu vb. içerebilecek şemayı tanımlayacağız. her öğrencinin. Şemayı oluşturduktan sonra verileri tablonun satırlarında saklayacağız. Şemada tanımlanmayan verileri depolayamayacağımızı unutmamak önemlidir. Bu örnekte, bir öğrencinin sınavdan aldığı not, şemada bu veriler için bir sütun tanımlamadığımız için tabloda saklanamaz.

Aşağıdaki liste, bazı popüler ilişkisel veritabanlarını içerir:

İlişkisel Olmayan Veritabanları (NoSQL)

Yukarıda tartışıldığı gibi, ilişkisel olmayan veritabanlarının tanımlanmış bir şeması yoktur. İlişkisel olmayan veritabanlarında tablolar yerine koleksiyonlar bulunur ve bu koleksiyonlar ilişkisel bir veritabanındaki satırlara eşdeğer belgeler içerir. Örneğin, öğrenci verilerini depolamak için ilişkisel olmayan bir veritabanı oluşturmak istiyorsak, bir kullanıcı koleksiyonu oluşturabiliriz ve bu koleksiyonda her öğrenci için bir belge saklayacağız. Bu belgelerin tanımlanmış bir şeması yoktur ve her öğrenci için istediğiniz her şeyi saklayabilirsiniz.

MySQL'de CRUD İşlemlerini Gerçekleştirme

Şimdi size Python kullanarak MySQL ile nasıl etkileşim kuracağınızı göstereceğiz.

Python için MySQL Sürücüsünü Yükleme

Python kullanarak MySQL ile etkileşim kurmak için önce Python'a MySQL sürücüsünü kurmamız gerekiyor.

[e-posta korumalı]:~$ sudo pip3 mysql-connector-python'u kurun

veya

[e-posta korumalı]:~$ sudo pip kurulum mysql-connector-python

Veritabanı Oluşturma

Veritabanı oluşturmadan önce Python kullanarak MySQL sunucusuna bağlanmamız gerekiyor. mysql.bağlayıcı modülü, Python kullanarak MySQL ile bağlantı kurmaya yardımcı olmak için connect() yöntemini sunar.

>>> mysql'i içe aktar.bağlayıcı
//Kendi IP ve Sunucu Kimlik Bilgilerinizle değiştirin
>>> sql = mysql.bağlayıcı.bağlan(
… ana bilgisayar = 'yerel ana bilgisayar',
… kullanıcı='kök',
… şifre='12345'
…)
>>> yazdır(sql)

Bu mesaj, Python kullanarak bir MySQL veritabanı ile başarılı bir şekilde bağlantı oluşturduğumuzu gösterir. Şimdi, mysql'den execute() yöntemini kullanarak MySQL sunucusunda bir SQL sorgusu çalıştıracağız.bağlantı modülü.

>>> imleç = sql.imleç()
>>> sorgu = 'VERİTABANI OLUŞTUR demo_db'
>>> imleç.Sorguyu çalıştır)

Yukarıdaki kod MySQL'de demo_db adlı bir veritabanı oluşturacaktır.

Tablo Oluşturma

Şimdi bir veritabanı oluşturduğumuza göre, öğrenciler adında yeni bir tablo oluşturacağız. Tablo oluşturmak için veritabanına bağlanmamız gerekiyor.

>>> sql_db = mysql.bağlayıcı.bağlan(
… ana bilgisayar = 'yerel ana bilgisayar',
… kullanıcı='kök',
… şifre='12345',
… veritabanı='demo_db'
…)

Veritabanına bağlandıktan sonra, şema ile bir tablo oluşturmak için bir SQL sorgusu çalıştırmak için execute() yöntemini kullanacağız.

>>> sorgu = "CREATE TABLE öğrenciler(isim VARCHAR(64), id INT, not INT, dob DATE)";
>>> imleç.Sorguyu çalıştır);

Yukarıdaki komut, demo_db veritabanında öğrenciler adında bir tablo oluşturacaktır; şemada tanımlandığı gibi tabloya yalnızca bir ad, kimlik, sınıf ve doğum tarihi ekleyebiliriz.

Tabloya Satır Ekleme

Artık bir tablo oluşturduğumuza göre, bu tabloya bir öğrenci ekleyeceğiz. Bir sorgu oluşturacağız ve ardından Python kullanarak MySQL sunucusunda sorguyu çalıştırmak için execute() yöntemini kullanacağız.

>>> sorgu = 'Öğrencilere EKLE(isim, kimlik, sınıf, dob) DEĞERLER(“John”, 1, 3, “2020-7-04”)'
>>> imleç.Sorguyu çalıştır)
>>> sql_db.taahhüt()

Bu sorgu, sorguda tanımlanan verilere sahip bir öğrenciyi tabloya ekleyecektir. Aynı şekilde tabloya ek öğrenciler ekleyebiliriz.

NOT: Değişiklikler yalnızca sql_db'yi çalıştırırsanız veritabanına uygulanacaktır.taahhüt () değişiklikleri uyguladıktan sonra.

Tablodan Satır Seçme

MySQL'deki SELECT ifadesi, bir tablodan veri döndürmek için kullanılır. Bir sorguyu çalıştırmak için execute() yöntemini kullanacağız ve ardından tüm öğrencilerin bir listesini almak için fetchall() yöntemini kullanacağız. Ardından, tüm öğrencileri görüntülemek için bir for döngüsü kullanabiliriz

>>> sorgu = 'Öğrencilerden * SEÇ'
>>> imleç.Sorguyu çalıştır)
>>> sonuç = imleç.getir()
>>> sonuç olarak x için:
… yazdır(x)
('John', 1, 3, tarihsaat.tarih(2020, 7, 4))

Tabloda yalnızca bir öğrencimiz olduğu için yalnızca tek bir öğrenci verisine ait verilerin döndürüldüğünü görebiliriz. Kısıtlamaları belirtmek için MySQL'deki WHERE ifadesini SELECT ifadesiyle birlikte kullanabiliriz. Örneğin sadece 4. sınıftaki öğrencileri geri vermek istiyorsak aşağıdaki sorguyu kullanabiliriz:

>>> sorgu = 'SEÇ * Öğrencilerden NEREDE not = 4'
>>> imleç.Sorguyu çalıştır)
>>> sonuç = imleç.getir()
>>> sonuç olarak x için:
… yazdır(x)

Yukarıdaki kod sadece 4. sınıftan öğrencileri getirecektir.

Satır Güncelleme

Bu bölümde, Python kullanarak MySQL tablosundaki öğrenci verilerini nasıl güncelleyeceğinizi göstereceğiz. Belirli öğrencilerin verilerini güncellemek için MySQL'deki WHERE ve SET ifadeleriyle UPDATE ifadesini kullanacağız. WHERE ifadesi hangi satırların güncelleneceğini belirlemek için, SET ifadesi ise güncelleme için kullanılan değerleri tanımlamak için kullanılır.

>>> sorgu = 'Öğrencileri GÜNCELLE SET name="Mark" NEREDE id = 4'
>>> imleç.Sorguyu çalıştır)
>>> sql_db.taahhüt()

Şimdi tablodan öğrenci verilerini SELECT deyimini kullanarak okumaya çalışacağız.

>>> sorgu = 'SELECT * FROM NEREDE id=4'
>>> imleç.Sorguyu çalıştır)
>>> imleçteki x için:
… yazdır(x)
('İşaretle', 4, 4, tarih saat.tarih(2020, 7, 15))

Şimdi, id 4 olan öğrencinin adının Mark olarak değiştirildiğini görebiliyoruz.

Satır Silme

Python kullanarak MySQL'de DELETE ifadesini uygulayarak tablodan bir satırı silebiliriz. Tablodan belirli öğrencileri silmek için WHERE ifadesi ile birlikte bir DELETE ifadesi kullanacağız.

>>> sorgu = 'ID=2 NEREDE öğrencilerden SİL'
>>> imleç.Sorguyu çalıştır)
>>> sql_db.taahhüt()

Artık SELECT deyimini kullanarak tüm öğrencileri tablodan döndürebiliriz.

>>> sorgu = 'Öğrencilerden * SEÇ'
>>> imleç.Sorguyu çalıştır)
>>> imleçteki x için:
… yazdır(x)
('John', 1, 3, tarihsaat.tarih(2020, 7, 4))
('John', 3, 3, tarih saat.tarih(2020, 7, 8)
('İşaretle', 4, 4, tarih saat.tarih(2020, 7, 15))

Öğrenciyi tablodan çıkardığımız için tablonun kimliği 2 olan bir öğrenci içermediğini görebiliriz.

Tablo Bırakmak

mysql.konektör modülü ayrıca bir tablo bırakmak için de kullanılabilir. Yürütme() yöntemini kullanarak MySQL'de bir DROP ifadesi çalıştırabiliriz.

>>> imleç = sql_db.imleç()
>>> sorgu = 'TABLOSU BIRAKIN öğrenciler'
>>> imleç.Sorguyu çalıştır)

Yukarıdaki kod, Python'da çalıştırıldığında öğrenciler adlı tabloyu siler.

Bu, SQL veritabanları tartışmamızı sonuçlandırıyor. Python kullanarak MySQL veritabanına farklı sorguların nasıl uygulanacağını gösterdik. Ardından, CRUD işlemlerini MongoDB adlı bir NoSQL Veritabanına uygulayacağız

MongoDB'de CRUD İşlemlerini Gerçekleştirme

Python kullanarak MongoDB ile etkileşim kurmak için önce Python için bir MongoDB sürücüsü olan pymongo'yu kurmalıyız.

[e-posta korumalı]:~$ sudo pip yükleme pymongo

veya

[e-posta korumalı]:~$ sudo pip3 pymongo yükleyin

Veritabanı Oluşturma

MongoDB'deki pymongo modülünün MongoClient() yöntemini kullanarak MongoDB'ye bağlanabiliriz. Herhangi bir işlem yapmadan önce MongoDB veritabanına bağlanmamız gerekiyor.

>>> pymongo'yu içe aktar
>>> müşteri = pymongo.MongoClient('mongodb://localhost:27017/')

Datacase'e bağlandıktan sonra, demo_db adında yeni bir veritabanı oluşturmak için aşağıdaki satırı çalıştırabiliriz.

>>> db = müşteri['demo_db']

Veritabanı zaten varsa, bu komut yoksayılır.

Koleksiyon Oluşturma

Şimdi bir veritabanı oluşturduğumuza göre, adlı veritabanında öğrenciler adında bir koleksiyon oluşturacağız.

>>> pymongo'yu içe aktar
>>> müşteri = pymongo.MongoClient('mongodb://localhost:27017/')
>>> db = müşteri['demo_db']
>>> col = db['öğrenciler']

NOT: MongoDB, siz içine veri girene kadar bir koleksiyon oluşturmaz. Bu nedenle, yukarıdaki kodu çalıştırdıktan sonra koleksiyona erişmeye çalışırsanız, veritabanında hiçbir şey olmadığını göreceksiniz.

Çizgisiz MySQL, MongoDB ilişkisel olmayan bir veritabanı olduğu için yeni bir koleksiyon oluşturduğumuzda şema tanımlamamız gerekmez.

Belge Ekleme

Koleksiyon oluşturduktan sonra koleksiyonun içine bir belge ekleyebiliriz. İlk önce bir sözlük tanımlamalıyız ve ardından sözlükte tanımlanan verileri koleksiyona eklemek için insert_one() yöntemini kullanabiliriz.

NOT: MongoDB, her belge için otomatik olarak benzersiz bir '_id' oluşturur; bu nedenle, bir kimlik belirtmemize gerek yok.

>>> veri =
… "isim": "John",
… "derece": 3,
… "dob": "2020-04-03"

>>> sonuç = sütun.insert_one(veri)

Yukarıdaki belgeye ad, derece ve dob ekledik. Şimdi, öğrenci koleksiyonuna yaş alanı olan bir belge ekleyeceğiz.

>>> veri =
… "isim" : "İşaret",
… "derece": 4,
… "dob": "2020-04-09",
… "yaş" : 8

>>> sonuç = sütun.insert_one(veri)

Bu komutun hata vermediğini görebiliriz. MongoDB ilişkisel olmayan bir veritabanı olduğu için belgeye istediğimiz bilgiyi ekleyebiliriz.

Belge Alma

Bu bölümde veritabanından veri almak için find() ve find_one() yöntemlerini kullanacağız. find() yöntemi iki argüman alır: ilki belgeleri filtrelemek için, ikincisi ise belgenin döndürmek istediğimiz alanlarını tanımlamak için kullanılır. Örneğin, 'John' kimliğini almak istiyorsak, aşağıdaki sorguyu çalıştırabiliriz:

>>> sonuç = sütun.bul("ad": "John", "_id": 1)
>>> sonuç olarak x için:
… yazdır(x)
'_id': ObjectId('5f8f0514cb12c01f7420656e')

Alternatif olarak, aşağıdaki sorguyu kullanarak koleksiyondaki tüm belgeleri alabiliriz:

>>> sonuç = sütun.bul()
>>> sonuç olarak x için:
… yazdır(x)
'_id': ObjectId('5f8f0514cb12c01f7420656e'), 'ad': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 4, 'dob': '2020-04-09', 'yaş': 8

Belgeleri Güncelleme

pymongo modülü, bir koleksiyondaki belgeleri güncellemek için update_one() ve update_many() yöntemlerini sunar. Her iki yöntem de iki argüman alır: ilki hangi belgenin değiştirileceğini tanımlar ve ikincisi yeni değerleri tanımlar. Şimdi, 'Mark' öğrencinin notunu değiştireceğiz.

>>> sorgu = "isim": "İşaret"
>>> değer = "$set": "grade": 5
>>> sütun.update_one(sorgu, değer)
>>> sütundaki x için.bul():
… yazdır(x)
'_id': ObjectId('5f8f0514cb12c01f7420656e'), 'ad': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 5, 'dob': '2020-04-09', 'yaş': 8

Belge Silme

Python'daki pymongo modülünün iki yöntemi vardır, i.e., belgeleri silmek için delete_one() ve delete_many(). Her iki yöntem de silinecek belgeyi seçen bir argüman alır. Aşağıdaki kodla 'John' adlı bir öğrenciyi sileceğiz.

>>> sorgu = "ad": "Can"
>>> sütun.delete_one(sorgu)
>>> sütundaki x için.bul():
… yazdır(x)
'_id': ObjectId('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'yaş': 8

Koleksiyon Bırakma

Python'da pymongo modülünün drop() yöntemini kullanarak MongoDB'de bir koleksiyon bırakabiliriz. Öncelikle veritabanına bağlanmamız gerekiyor; ardından kaldırmak istediğimiz koleksiyonun bulunduğu veritabanını seçiyoruz. Veritabanından koleksiyonu seçtikten sonra drop() yöntemini kullanarak koleksiyonu kaldırabiliriz. Aşağıdaki kod öğrencileri bırakacak.

>>> pymongo'yu içe aktar
>>> müşteri = pymongo.MongoClient('mongodb://localhost:27017/')
>>> db = müşteri['demo_db']
>>> col = db['öğrenciler']
>>> sütun.düşürmek()

Sonuç

Bir web uygulaması yapmak istiyorsanız veritabanları bilgisi çok önemlidir. Hemen hemen her programlama dilinde, arka uç web geliştirme için çerçeveler ve kitaplıklar bulunur. Python, arka uç web geliştirmede kullanılabilir ve böylece Python arka uç çerçeveleriyle çalışırken Python kullanarak veritabanlarıyla etkileşim kurabiliriz. Bu yazımızda Python ile yazılmış basit CRUD işlemlerini kullanarak MongoDB ve MySQL veritabanları ile nasıl etkileşim kuracağınızı gösterdik.

Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...
Middle mouse button not working in Windows 10
The middle mouse button helps you scroll through long webpages and screens with a lot of data. If that stops, well you will end up using the keyboard ...