Python

Operasi CRUD ke Pangkalan Data SQL dan NoSQL menggunakan Python

Operasi CRUD ke Pangkalan Data SQL dan NoSQL menggunakan Python
Terdapat dua jenis pangkalan data utama yang dapat digunakan dengan aplikasi: pangkalan data relasional (SQL) dan pangkalan data bukan hubungan (NoSQL). Kedua-duanya digunakan secara meluas tetapi memilih satu bergantung pada jenis data yang akan disimpan. Terdapat empat operasi asas yang dapat dilakukan pada pangkalan data: buat, baca, kemas kini dan hapus (CRUD).

Kita dapat berinteraksi dengan pangkalan data menggunakan bahasa pengaturcaraan apa pun, atau kita dapat menggunakan program perisian yang memungkinkan kita berinteraksi dengan pangkalan data menggunakan GUI. Dalam artikel ini, kami akan membincangkan pangkalan data dan menunjukkan kepada anda cara berinteraksi dengannya menggunakan bahasa pengaturcaraan Python.

Pangkalan Data Perhubungan (SQL)

Pangkalan data hubungan (SQL) berbeza dengan pangkalan data bukan hubungan (NoSQL) dari segi skema. Skema adalah templat yang menentukan struktur data yang akan anda simpan. Dalam pangkalan data hubungan, kami membuat jadual untuk menyimpan data. Skema jadual ditentukan semasa jadual dibuat. Sebagai contoh, jika kita ingin menyimpan data pelajar dalam pangkalan data hubungan, maka kita akan membuat jadual pelajar dan menentukan skema jadual, yang mungkin merangkumi nama, nombor pendaftaran, gred, dll. setiap pelajar. Setelah membuat skema, kami akan menyimpan data di baris jadual. Penting untuk diperhatikan bahawa kita tidak dapat menyimpan data yang tidak ditentukan dalam skema. Dalam contoh ini, nilai yang diterima pelajar dalam peperiksaan tidak dapat disimpan dalam jadual kerana kami belum menentukan lajur untuk data ini dalam skema.

Senarai berikut merangkumi beberapa pangkalan data hubungan yang popular:

Pangkalan Data Bukan Hubungan (NoSQL)

Seperti yang dibincangkan di atas, pangkalan data bukan hubungan tidak mempunyai skema yang ditentukan. Pangkalan data bukan hubungan mempunyai koleksi dan bukannya jadual, dan koleksi ini mengandungi dokumen yang setara dengan baris dalam pangkalan data hubungan. Sebagai contoh, jika kita ingin membuat pangkalan data yang tidak berkaitan untuk menyimpan data pelajar, kita dapat membuat koleksi pengguna dan, dalam koleksi ini, kita akan menyimpan dokumen untuk setiap pelajar. Dokumen ini tidak mempunyai skema yang ditentukan, dan anda boleh menyimpan apa sahaja yang anda mahukan untuk setiap pelajar.

Menjalankan Operasi CRUD di MySQL

Sekarang, kami akan menunjukkan kepada anda cara berinteraksi dengan MySQL menggunakan Python.

Memasang Pemacu MySQL untuk Python

Untuk berinteraksi dengan MySQL menggunakan Python, pertama-tama kita perlu memasang pemacu MySQL di Python.

[dilindungi e-mel]: ~ $ sudo pip3 pasang mysql-connector-python

atau

[dilindungi e-mel]: ~ $ sudo pip pasang mysql-connector-python

Membuat Pangkalan Data

Sebelum membuat pangkalan data, kita perlu berhubung dengan pelayan MySQL menggunakan Python. The mysql.modul penyambung menawarkan kaedah connect () untuk membantu menjalin hubungan dengan MySQL menggunakan Python.

>>> import mysql.penyambung
// Ganti dengan Kredensial IP dan Pelayan anda sendiri
>>> sql = mysql.penyambung.sambung (
... hos = 'localhost',
… Pengguna = 'root',
… Kata laluan = '12345'
…)
>>> cetak (sql)

Mesej ini menunjukkan bahawa kita berjaya membuat sambungan dengan pangkalan data MySQL menggunakan Python. Sekarang, kita akan menjalankan pertanyaan SQL pada pelayan MySQL menggunakan kaedah eksekusi () dari mysql.modul penyambung.

>>> kursor = sql.kursor ()
>>> pertanyaan = 'BUAT DATABASE demo_db'
>>> kursor.laksanakan (pertanyaan)

Kod di atas akan membuat pangkalan data bernama demo_db di MySQL.

Membuat Jadual

Setelah kita membuat pangkalan data, kita akan membuat jadual baru bernama pelajar. Untuk membuat jadual, kita perlu menyambung ke pangkalan data.

>>> sql_db = mysql.penyambung.sambung (
... hos = 'localhost',
… Pengguna = 'root',
… Kata laluan = '12345',
... pangkalan data = 'demo_db'
…)

Setelah menyambung ke pangkalan data, kami akan menggunakan kaedah execute () untuk menjalankan pertanyaan SQL untuk membuat jadual dengan skema.

>>> pertanyaan = "BUAT TABLE pelajar (nama VARCHAR (64), id INT, gred INT, dob DATE)";
>>> kursor.laksanakan (pertanyaan);

Perintah di atas akan membuat jadual bernama pelajar dalam pangkalan data demo_db; kita hanya boleh memasukkan nama, id, kelas dan tarikh lahir dalam jadual, seperti yang ditentukan dalam skema.

Memasukkan Baris ke dalam Jadual

Sekarang kita telah membuat jadual, kita akan memasukkan pelajar ke dalam jadual ini. Kami akan membuat pertanyaan dan kemudian menggunakan kaedah execute () untuk menjalankan pertanyaan pada pelayan MySQL menggunakan Python.

>>> pertanyaan = 'INSERT INTO siswa (nama, id, gred, dob) NILAI ("John", 1, 3, "2020-7-04")'
>>> kursor.laksanakan (pertanyaan)
>>> sql_db.melakukan ()

Pertanyaan ini akan menambahkan pelajar dengan data yang ditentukan dalam pertanyaan ke dalam jadual. Kita boleh menambah pelajar tambahan ke meja dengan cara yang sama.

CATATAN: Perubahan akan diterapkan ke pangkalan data hanya jika anda menjalankan sql_db.komit () setelah menerapkan perubahan.

Memilih Baris dari Jadual

Pernyataan SELECT di MySQL digunakan untuk mengembalikan data dari jadual. Kami akan menggunakan kaedah execute () untuk menjalankan pertanyaan, dan kemudian kami akan menggunakan kaedah fetchall () untuk mendapatkan senarai semua pelajar. Kemudian, kita boleh menggunakan loop untuk memaparkan semua pelajar

>>> pertanyaan = 'PILIH * DARI pelajar'
>>> kursor.laksanakan (pertanyaan)
>>> hasil = kursor.fetchall ()
>>> untuk hasil x:
... cetak (x)
('John', 1, 3, datetime.tarikh (2020, 7, 4))

Kita dapat melihat bahawa hanya data untuk satu data pelajar yang dikembalikan, kerana kita hanya mempunyai satu pelajar dalam jadual. Kita boleh menggunakan pernyataan WHERE di MySQL dengan pernyataan SELECT untuk menentukan kekangan. Contohnya, jika kita mahu mengembalikan pelajar di kelas 4 sahaja, kita boleh menggunakan pertanyaan berikut:

>>> pertanyaan = 'PILIH * DARI pelajar DI MANA gred = 4'
>>> kursor.laksanakan (pertanyaan)
>>> hasil = kursor.fetchall ()
>>> untuk hasil x:
... cetak (x)

Kod di atas hanya akan mengambil pelajar dari kelas 4.

Mengemas kini Baris

Di bahagian ini, kami akan menunjukkan kepada anda cara mengemas kini data pelajar dalam jadual MySQL menggunakan Python. Kami akan menggunakan pernyataan UPDATE dengan pernyataan WHERE dan SET di MySQL untuk mengemas kini data pelajar tertentu. Pernyataan WHERE digunakan untuk menentukan baris mana yang akan diperbarui, dan pernyataan SET digunakan untuk menentukan nilai yang digunakan untuk kemas kini.

>>> pertanyaan = 'KEMASKINI pelajar SET nama = "Tandakan" DI MANA id = 4'
>>> kursor.laksanakan (pertanyaan)
>>> sql_db.melakukan ()

Sekarang, kita akan cuba membaca data pelajar dari jadual dengan menggunakan pernyataan SELECT.

>>> pertanyaan = 'PILIH * DARI pelajar DI MANA id = 4'
>>> kursor.laksanakan (pertanyaan)
>>> untuk kursor x:
... cetak (x)
('Tandakan', 4, 4, masa masa.tarikh (2020, 7, 15))

Sekarang, kita dapat melihat bahawa nama pelajar dengan id 4 telah ditukar menjadi Mark.

Memadamkan Baris

Kita boleh menghapus baris dari jadual dengan menerapkan pernyataan DELETE di MySQL menggunakan Python. Kami akan menggunakan pernyataan DELETE dengan pernyataan WHERE untuk menghapus pelajar tertentu dari jadual.

>>> pertanyaan = 'HAPUS DARI pelajar DI MANA id = 2'
>>> kursor.laksanakan (pertanyaan)
>>> sql_db.melakukan ()

Sekarang, kita dapat mengembalikan semua pelajar dari jadual menggunakan pernyataan SELECT.

>>> pertanyaan = 'PILIH * DARI pelajar'
>>> kursor.laksanakan (pertanyaan)
>>> untuk kursor x:
... cetak (x)
('John', 1, 3, datetime.tarikh (2020, 7, 4))
('John', 3, 3, datetime.tarikh (2020, 7, 8))
('Mark', 4, 4, masa masa.tarikh (2020, 7, 15))

Kita dapat melihat bahawa jadual tidak mengandungi pelajar dengan id 2, kerana kita telah mengeluarkan pelajar dari jadual.

Menjatuhkan Jadual

The mysql.modul penyambung juga boleh digunakan untuk menjatuhkan meja. Kita boleh melaksanakan pernyataan DROP di MySQL dengan menggunakan kaedah execute ().

>>> kursor = sql_db.kursor ()
>>> pertanyaan = 'DROP TABLE pelajar'
>>> kursor.laksanakan (pertanyaan)

Kod di atas akan memadamkan jadual yang dinamakan pelajar ketika dijalankan di Python.

Itu menyimpulkan perbincangan kami mengenai pangkalan data SQL. Kami telah menunjukkan kepada anda cara menerapkan pertanyaan yang berbeza ke pangkalan data MySQL menggunakan Python. Seterusnya, kami akan menerapkan operasi CRUD ke Pangkalan Data NoSQL yang disebut MongoDB

Menjalankan Operasi CRUD di MongoDB

Untuk berinteraksi dengan MongoDB menggunakan Python, kita mesti memasang pymongo terlebih dahulu, yang merupakan pemacu MongoDB untuk Python.

[dilindungi e-mel]: ~ $ sudo pip pasang pymongo

atau

[dilindungi e-mel]: ~ $ sudo pip3 pasang pymongo

Membuat Pangkalan Data

Kita boleh berhubung dengan MongoDB menggunakan kaedah MongoClient () modul pymongo di MongoDB. Sebelum melakukan sebarang tindakan, kita perlu menyambung ke pangkalan data MongoDB.

>>> import pymongo
>>> pelanggan = pymongo.MongoClient ('mongodb: // localhost: 27017 /')

Setelah menyambung ke pangkalan data, kita dapat menjalankan baris berikut untuk membuat pangkalan data baru bernama demo_db.

>>> db = pelanggan ['demo_db']

Sekiranya pangkalan data sudah ada, maka perintah ini akan diabaikan.

Membuat Koleksi

Setelah kita membuat pangkalan data, kita akan membuat koleksi bernama pelajar dalam pangkalan data bernama.

>>> import pymongo
>>> pelanggan = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = pelanggan ['demo_db']
>>> col = db ['pelajar']

CATATAN: MongoDB tidak membuat koleksi sehingga anda memasukkan data di dalamnya. Oleh itu, jika anda cuba mengakses koleksi setelah menjalankan kod di atas, anda akan mendapati bahawa tidak ada apa-apa dalam pangkalan data.

MySQL yang tidak bergaris, kita tidak perlu menentukan skema ketika kita membuat koleksi baru, kerana MongoDB adalah pangkalan data bukan hubungan.

Memasukkan Dokumen

Setelah membuat koleksi, kita dapat memasukkan dokumen di dalam koleksi. Pertama, kita mesti menentukan kamus, dan kemudian kita boleh menggunakan kaedah insert_one () untuk memasukkan data yang ditentukan dalam kamus ke dalam koleksi.

CATATAN: MongoDB secara automatik membuat '_id' unik untuk setiap dokumen; oleh itu, kita tidak perlu menentukan id.

>>> data =
… "Name": "John",
… "Gred": 3,
… "Dob": "2020-04-03"

>>> hasil = col.insert_one (data)

Dalam dokumen di atas, kami memasukkan nama, gred dan dob. Sekarang, kami akan memasukkan dokumen dalam koleksi pelajar yang mempunyai bidang untuk usia.

>>> data =
… "Name": "Tandakan",
... "gred": 4,
… "Dob": "2020-04-09",
... "umur": 8

>>> hasil = col.insert_one (data)

Kita dapat melihat bahawa arahan ini tidak menimbulkan kesalahan. Oleh kerana MongoDB adalah pangkalan data bukan hubungan, kami dapat menambahkan maklumat yang kami mahukan dalam dokumen.

Mendapatkan Dokumen

Di bahagian ini, kami akan menggunakan kaedah find () dan find_one () untuk mendapatkan data dari pangkalan data. Kaedah find () mengambil dua argumen: yang pertama digunakan untuk menyaring dokumen, dan yang kedua digunakan untuk menentukan bidang dokumen yang ingin kita kembalikan. Sebagai contoh, jika kita ingin mendapatkan id 'John', maka kita boleh menjalankan pertanyaan berikut:

>>> hasil = col.cari ("nama": "John", "_id": 1)
>>> untuk hasil x:
... cetak (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e')

Sebagai alternatif, kita boleh mendapatkan semua dokumen dari koleksi dengan menggunakan pertanyaan berikut:

>>> hasil = col.cari()
>>> untuk hasil x:
... cetak (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 4, 'dob': '2020-04-09', 'age': 8

Mengemas kini Dokumen

Modul pymongo menawarkan kaedah update_one () dan update_many () untuk mengemas kini dokumen dalam koleksi. Kedua-dua kaedah mengambil dua argumen: yang pertama menentukan dokumen mana yang hendak diubah, dan yang kedua menentukan nilai baru. Sekarang, kita akan menukar gred 'Mark' pelajar.

>>> pertanyaan = "name": "Mark"
>>> nilai = "$ set": "grade": 5
>>> kol.update_one (pertanyaan, nilai)
>>> untuk x dalam kol.cari():
... cetak (x)
'_id': ObjectId ('5f8f0514cb12c01f7420656e'), 'name': 'John', 'grade': 3, 'dob': '2020-04-03'
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'grade': 5, 'dob': '2020-04-09', 'age': 8

Memadamkan Dokumen

Modul pymongo di Python mempunyai dua kaedah, i.e., delete_one () dan delete_many (), untuk menghapus dokumen. Kedua-dua kaedah mengambil argumen yang memilih dokumen yang akan dihapuskan. Dengan kod berikut, kami akan menghapus pelajar bernama 'John'.

>>> pertanyaan = "name": "John"
>>> kol.delete_one (pertanyaan)
>>> untuk x dalam kol.cari():
... cetak (x)
'_id': ObjectId ('5f8f061ccb12c01f7420656f'), 'name': 'Mark', 'id': 2, 'grade': 5, 'dob': '2020-04-09', 'age': 8

Menjatuhkan Koleksi

Kita boleh menjatuhkan koleksi di MongoDB dengan menggunakan kaedah drop () modul pymongo di Python. Pertama, kita perlu menyambung ke pangkalan data; kemudian, kami memilih pangkalan data yang menyimpan koleksi yang ingin kami alih keluar. Setelah memilih koleksi dari pangkalan data, kita dapat menghapus koleksi menggunakan kaedah drop (). Kod berikut akan menurunkan pelajar.

>>> import pymongo
>>> pelanggan = pymongo.MongoClient ('mongodb: // localhost: 27017 /')
>>> db = pelanggan ['demo_db']
>>> col = db ['pelajar']
>>> kol.turun ()

Kesimpulannya

Pengetahuan mengenai pangkalan data sangat penting jika anda ingin membuat aplikasi web. Hampir setiap bahasa pengaturcaraan mempunyai kerangka kerja dan perpustakaan untuk pengembangan web backend. Python dapat digunakan dalam pengembangan web backend, dan jadi kami dapat berinteraksi dengan pangkalan data menggunakan Python ketika bekerja dengan kerangka kerja backend Python. Dalam artikel ini, kami menunjukkan kepada anda cara berinteraksi dengan pangkalan data MongoDB dan MySQL dengan menggunakan operasi CRUD ringkas yang ditulis dalam Python.

Kursor melompat atau bergerak secara rawak semasa menaip di Windows 10
Sekiranya anda mendapati kursor tetikus anda melompat atau bergerak sendiri, secara automatik, secara rawak semasa menaip komputer riba atau komputer ...
Cara membalikkan arah tatal Tetikus dan Pad Sentuh pada Windows 10
Tetikus dan Pad sentuhs bukan sahaja menjadikan pengkomputeran mudah, tetapi lebih cekap dan kurang memakan masa. Kami tidak dapat membayangkan kehidu...
Cara menukar saiz, warna & skema penunjuk dan kursor tetikus pada Windows 10
Penunjuk dan kursor tetikus di Windows 10 adalah aspek yang sangat penting dalam sistem operasi. Ini boleh dikatakan untuk sistem operasi lain juga, j...