Standar Python untuk antarmuka basis data adalah Python DB-API. Sebagian besar antarmuka database Python mematuhi standar ini Show
Anda dapat memilih database yang tepat untuk aplikasi Anda. API Basis Data Python mendukung berbagai server basis data seperti −
Berikut adalah daftar antarmuka database Python yang tersedia. Antarmuka dan API Basis Data Python. Anda harus mengunduh modul API DB terpisah untuk setiap basis data yang perlu Anda akses. Misalnya, jika Anda perlu mengakses database Oracle serta database MySQL, Anda harus mengunduh modul database Oracle dan MySQL DB API memberikan standar minimal untuk bekerja dengan database menggunakan struktur dan sintaks Python jika memungkinkan. API ini mencakup yang berikut −
Kami akan mempelajari semua konsep menggunakan MySQL, jadi mari kita bicara tentang modul MySQLdb Apa itu MySQLdb?MySQLdb adalah antarmuka untuk menghubungkan ke server database MySQL dari Python. Ini mengimplementasikan Python Database API v2. 0 dan dibangun di atas MySQL C API Bagaimana cara saya menginstal MySQLdb?Sebelum melanjutkan, pastikan Anda telah menginstal MySQLdb di mesin Anda. Cukup ketikkan yang berikut dalam skrip Python Anda dan jalankan − #!/usr/bin/python import MySQLdb Jika menghasilkan hasil seperti berikut, berarti modul MySQLdb tidak terpasang− Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_ Untuk menginstal modul MySQLdb, gunakan perintah berikut − For Ubuntu, use the following command - $ sudo apt-get install python-pip python-dev libmysqlclient-dev For Fedora, use the following command - $ sudo dnf install python python-devel mysql-devel redhat-rpm-config gcc For Python command prompt, use the following command - pip install MySQL-python Catatan - Pastikan Anda memiliki hak akses root untuk menginstal modul di atas Koneksi Basis DataSebelum menghubungkan ke database MySQL, pastikan hal-hal berikut −
ContohBerikut contoh koneksi dengan database MySQL "TESTDB" #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # execute SQL query using execute() method. cursor.execute("SELECT VERSION()") # Fetch a single row using fetchone() method. data = cursor.fetchone() print "Database version : %s " % data # disconnect from server db.close() Saat menjalankan skrip ini, ia menghasilkan hasil berikut di mesin Linux saya Database version : 5.0.45_ Jika koneksi dibuat dengan sumber data, maka Objek Koneksi dikembalikan dan disimpan ke db untuk digunakan lebih lanjut, jika tidak, db disetel ke Tidak Ada. Selanjutnya, objek db digunakan untuk membuat objek kursor, yang pada gilirannya digunakan untuk mengeksekusi kueri SQL. Terakhir, sebelum keluar, pastikan koneksi database ditutup dan sumber daya dilepaskan Membuat Tabel DatabaseSetelah koneksi basis data dibuat, kami siap untuk membuat tabel atau catatan ke dalam tabel basis data menggunakan metode eksekusi dari kursor yang dibuat ContohMari kita buat tabel Database EMPLOYEE − #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Drop table if it already exist using execute() method. cursor.execute("DROP TABLE IF EXISTS EMPLOYEE") # Create table as per requirement sql = """CREATE TABLE EMPLOYEE ( FIRST_NAME CHAR(20) NOT NULL, LAST_NAME CHAR(20), AGE INT, SEX CHAR(1), INCOME FLOAT )""" cursor.execute(sql) # disconnect from server db.close() Operasi MASUKKANIni diperlukan saat Anda ingin membuat record Anda ke dalam tabel database ContohContoh berikut, mengeksekusi pernyataan SQL INSERT untuk membuat record ke tabel EMPLOYEE − #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = """INSERT INTO EMPLOYEE(FIRST_NAME, LAST_NAME, AGE, SEX, INCOME) VALUES ('Mac', 'Mohan', 20, 'M', 2000)""" try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close()_ Contoh di atas dapat ditulis sebagai berikut untuk membuat kueri SQL secara dinamis − #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() # Prepare SQL query to INSERT a record into the database. sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \ LAST_NAME, AGE, SEX, INCOME) \ VALUES ('%s', '%s', '%d', '%c', '%d' )" % \ ('Mac', 'Mohan', 20, 'M', 2000) try: # Execute the SQL command cursor.execute(sql) # Commit your changes in the database db.commit() except: # Rollback in case there is any error db.rollback() # disconnect from server db.close() ContohSegmen kode berikut adalah bentuk eksekusi lain di mana Anda dapat meneruskan parameter secara langsung − .................................. user_id = "test123" password = "password" con.execute('insert into Login values("%s", "%s")' % \ (user_id, password)) .................................._ BACA OperasiREAD Operasi pada basis data apa pun berarti mengambil beberapa informasi berguna dari basis data Setelah koneksi basis data kami terjalin, Anda siap membuat kueri ke basis data ini. Anda dapat menggunakan metode fetchone() untuk mengambil record tunggal atau metode fetchall() untuk mengambil beberapa nilai dari tabel database
ContohProsedur berikut menanyakan semua record dari tabel EMPLOYEE yang memiliki gaji lebih dari 1000− #!/usr/bin/python import MySQLdb # Open database connection db = MySQLdb.connect("localhost","testuser","test123","TESTDB" ) # prepare a cursor object using cursor() method cursor = db.cursor() sql = "SELECT * FROM EMPLOYEE \ WHERE INCOME > '%d'" % (1000) try: # Execute the SQL command cursor.execute(sql) # Fetch all the rows in a list of lists. results = cursor.fetchall() for row in results: fname = row[0] lname = row[1] age = row[2] sex = row[3] income = row[4] # Now print fetched result print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \ (fname, lname, age, sex, income ) except: print "Error: unable to fecth data" # disconnect from server db.close()_ Ini akan menghasilkan hasil berikut - Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_0 Perbarui OperasiPEMBARUAN Operasi pada basis data apa pun berarti memperbarui satu atau lebih catatan, yang sudah tersedia di basis data Prosedur berikut memperbarui semua catatan yang memiliki SEX sebagai 'M'. Di sini, kami meningkatkan AGE semua laki-laki satu tahun ContohTraceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_1 Operasi HAPUSOperasi DELETE diperlukan ketika Anda ingin menghapus beberapa record dari database Anda. Berikut adalah prosedur untuk menghapus semua record dari EMPLOYEE dimana AGE lebih dari 20− ContohTraceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_2 Melakukan TransaksiTransaksi adalah mekanisme yang memastikan konsistensi data. Transaksi memiliki empat sifat berikut −
Python DB API 2. 0 menyediakan dua metode untuk melakukan atau membatalkan transaksi ContohAnda sudah tahu bagaimana menerapkan transaksi. Ini lagi contoh serupa − Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_3 Operasi KOMITKomit adalah operasi, yang memberikan sinyal hijau ke database untuk menyelesaikan perubahan, dan setelah operasi ini, tidak ada perubahan yang dapat dikembalikan Berikut adalah contoh sederhana untuk memanggil metode komit Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_4 Operasi KEMBALIJika Anda tidak puas dengan satu atau lebih perubahan dan Anda ingin mengembalikan perubahan itu sepenuhnya, maka gunakan metode rollback() Berikut adalah contoh sederhana untuk memanggil metode rollback() Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_5 Memutuskan Basis DataUntuk memutuskan koneksi Database, gunakan metode close() Traceback (most recent call last): File "test.py", line 3, in import MySQLdb ImportError: No module named MySQLdb_6 Jika koneksi ke database ditutup oleh pengguna dengan metode close(), semua transaksi yang belum selesai akan dibatalkan oleh DB. Namun, alih-alih bergantung pada detail implementasi tingkat rendah DB mana pun, aplikasi Anda akan lebih baik memanggil komit atau rollback secara eksplisit Menangani KesalahanAda banyak sumber kesalahan. Beberapa contoh adalah kesalahan sintaksis dalam pernyataan SQL yang dieksekusi, kegagalan koneksi, atau memanggil metode pengambilan untuk pegangan pernyataan yang sudah dibatalkan atau selesai DB API mendefinisikan sejumlah error yang harus ada di setiap modul database. Tabel berikut mencantumkan pengecualian ini Sr. Tidak. Pengecualian & Deskripsi1Peringatan Digunakan untuk masalah non-fatal. Harus membuat subkelas StandardError 2Kesalahan Kelas dasar untuk kesalahan. Harus membuat subkelas StandardError 3InterfaceError Digunakan untuk error pada modul database, bukan database itu sendiri. Harus subkelas Kesalahan 4Kesalahan Database Digunakan untuk kesalahan dalam database. Harus subkelas Kesalahan 5DataError Subclass dari DatabaseError yang mengacu pada kesalahan dalam data 6Kesalahan Operasional Subkelas dari DatabaseError yang mengacu pada kesalahan seperti hilangnya koneksi ke database. Kesalahan ini umumnya di luar kendali pembuat skrip Python 7IntegrityError Subkelas DatabaseError untuk situasi yang akan merusak integritas relasional, seperti batasan keunikan atau kunci asing 8Kesalahan internal Subkelas dari DatabaseError yang mengacu pada kesalahan internal modul database, seperti kursor tidak lagi aktif 9ProgrammingError Subkelas dari DatabaseError yang mengacu pada kesalahan seperti nama tabel yang buruk dan hal-hal lain yang dapat dengan aman disalahkan pada Anda 10NotSupportedError Subkelas dari DatabaseError yang merujuk pada mencoba memanggil fungsionalitas yang tidak didukung Skrip Python Anda harus menangani kesalahan ini, tetapi sebelum menggunakan salah satu pengecualian di atas, pastikan MySQLdb Anda memiliki dukungan untuk pengecualian itu. Anda bisa mendapatkan lebih banyak informasi tentang mereka dengan membaca DB API 2. 0 spesifikasi Bagaimana cara membaca tabel database di panda?Saya akan menggunakan langkah-langkah berikut untuk menjelaskan penggunaan panda read_sql(). . Sintaks read_sql() Buat tabel database di sqlite3 Masukkan data ke dalam tabel Jalankan kueri SQL dengan menggunakan panda read_sql() Gunakan read_sql_query() Gunakan read_sql_table() Filter baris dari tabel SQL Bagaimana cara mengambil data dari database MySQL dengan Python?Anda dapat mengambil/mengambil data dari tabel di MySQL menggunakan kueri SELECT. Kueri/pernyataan ini mengembalikan konten dari tabel yang ditentukan dalam bentuk tabel dan disebut sebagai himpunan hasil
Bagaimana cara membuka tabel SQL dengan Python?Berikut adalah langkah sederhana untuk memulai. . Langkah 1 — Mengimpor SQLite dan Panda. Untuk memulai, kita perlu mengimpor SQLite ke notebook Jupyter kita. . Langkah 2 — Menghubungkan database Anda. . Langkah 3 — Objek Kursor. . Langkah 4 — Menulis Permintaan. . Langkah 5 — Menjalankan Kueri. . Langkah 6 — Menutup koneksi Anda. . Langkah 7 — BONUS (Mengapa Python dengan SQL?) Bagaimana cara mencetak data dari database dengan Python?Langkah 1. Terhubung ke database menggunakan metode connect(). Langkah 2. Buat perintah untuk mengeksekusi kueri menggunakan metode kursor(). Langkah 3. Dan kemudian kami telah menggunakan metode fetchAll() yang disimpan dalam baris. Langkah 4. Cetak semua elemen baris |