Tutorial Python MariaDB: Koneksi, CRUD, Transaksi, dan Penanganan Kesalahan

目次

1. Pendahuluan

Untuk mereka yang ingin bekerja dengan MariaDB di Python

Banyak orang ingin terhubung ke MariaDB menggunakan Python dan memanipulasi data. Dalam artikel ini, kami akan menjelaskan segala hal mulai dari dasar hingga topik yang lebih lanjutan untuk bekerja dengan MariaDB menggunakan Python.

Apakah Anda memiliki salah satu masalah ini?

  • Anda tidak tahu cara terhubung ke MariaDB dari Python
  • Anda ingin dengan mudah membuat, membaca, memperbarui, dan menghapus data di MariaDB menggunakan Python
  • Anda ingin mempelajari kesalahan umum dan cara memperbaikinya

Apa yang akan Anda pelajari dalam artikel ini

  • Cara mudah terhubung ke MariaDB dari Python
  • Cara mengimplementasikan CRUD (Create, Read, Update, Delete)
  • Kesalahan umum dan solusinya
  • Cara melindungi integritas data dengan transaksi

Setelah membaca artikel ini, Anda akan dapat bekerja dengan lancar menggunakan MariaDB dengan Python. Sekarang, mari kita selami detailnya.

2. Penyiapan Lingkungan (Menginstal MariaDB & Python)

Apa itu MariaDB?

MariaDB adalah sistem manajemen basis data relasional (RDBMS) sumber terbuka yang banyak digunakan sebagai penerus MySQL. Sambil mempertahankan kompatibilitas tinggi dengan MySQL, MariaDB memiliki kinerja yang lebih baik dan menambahkan fitur-fitur baru.

Alat yang Diperlukan

Untuk bekerja dengan MariaDB di Python, Anda perlu menyiapkan alat-alat berikut:

  • Python (versi 3.x atau lebih baru disarankan)
  • MariaDB (server)
  • Konektor Python MariaDB (pustaka mariadb)

Cara menginstal MariaDB (per OS)

Untuk Windows

  1. Unduh installer MariaDB dari situs resmi .
  2. Jalankan installer dan ikuti petunjuk untuk menyelesaikan instalasi.
  3. Setelah instalasi, verifikasi bahwa MariaDB berfungsi dengan menjalankan perintah berikut:
    mysql -u root -p
    
  1. Jika Anda dapat masuk dengan sukses, instalasi selesai.

Untuk Mac

Di Mac, Anda dapat dengan mudah menginstal MariaDB menggunakan Homebrew.

  1. Jika Homebrew belum terpasang, pasang dengan perintah berikut:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
  1. Instal MariaDB:
    brew install mariadb
    
  1. Mulai MariaDB:
    brew services start mariadb
    
  1. Verifikasi instalasi:
    mysql -u root -p
    

Untuk Linux (Ubuntu)

  1. Perbarui daftar paket dan instal MariaDB:
    sudo apt update
    sudo apt install mariadb-server mariadb-client
    
  1. Mulai MariaDB:
    sudo systemctl start mariadb
    
  1. Aktifkan MariaDB (mulai otomatis saat boot):
    sudo systemctl enable mariadb
    
  1. Jalankan skrip instalasi aman:
    sudo mysql_secure_installation
    

Ini memungkinkan Anda mengatur kata sandi root dan menghapus pengaturan default yang tidak diperlukan.

Menginstal Python dan pustaka yang diperlukan

Untuk mengintegrasikan MariaDB dengan Python, Anda perlu menginstal pustaka mariadb.

  1. Instal pustaka mariadb menggunakan pip :
    pip install mariadb
    
  1. Verifikasi instalasi:
    import mariadb
    print("The MariaDB library was installed successfully.")
    

Jika tidak ada error, instalasi berhasil.

Sekarang penyiapan lingkungan Anda untuk menggunakan Python dengan MariaDB selesai. Selanjutnya, kami akan menjelaskan cara terhubung ke MariaDB dari Python.

3. Menghubungkan ke MariaDB

Cara menghubungkan ke MariaDB dengan Python

Impor pustaka yang diperlukan

Untuk terhubung ke MariaDB, impor pustaka Python mariadb.

import mariadb

Kode dasar untuk menghubungkan ke basis data

Kode berikut menunjukkan cara dasar untuk terhubung ke MariaDB menggunakan Python.

import mariadb

# Database connection settings
config = {
    "host": "localhost",   # Hostname of the MariaDB server
    "user": "root",        # MariaDB username
    "password": "password", # MariaDB password
    "database": "sample_db" # Database name to connect to
}

try:
    # Connect to MariaDB
    conn = mariadb.connect(**config)
    print("Connected to MariaDB!")

    # Buat sebuah cursor
    cursor = conn.cursor()

    # Jika koneksi berhasil, tutup
    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Connection error: {e}")

About the arguments of connect()

ArgumentDescription
hostMariaDB server address (usually localhost)
userDatabase username
passwordDatabase password
databaseDatabase name to connect to

If the server is remote, specify an IP address or domain name in host.

A secure connection method using environment variables

Hardcoding sensitive information such as passwords directly in your code is a security risk. By using environment variables, you can manage them more safely.

Install python-dotenv

First, install a library to manage environment variables.

pip install python-dotenv

Create a .env file and write your connection settings

Create a .env file in your project folder and add your connection settings like this:

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=password
DB_NAME=sample_db

Load environment variables in your Python script

To load the .env file in a Python script, write the following:

import mariadb
import os
from dotenv import load_dotenv

# Load the .env file
load_dotenv()

config = {
    "host": os.getenv("DB_HOST"),
    "user": os.getenv("DB_USER"),
    "password": os.getenv("DB_PASSWORD"),
    "database": os.getenv("DB_NAME")
}

try:
    conn = mariadb.connect(**config)
    print("Connected securely to MariaDB!")
    conn.close()
except mariadb.Error as e:
    print(f"Connection error: {e}")

Common connection errors and how to fix them

Below are some errors you may encounter when connecting Python to MariaDB, along with their solutions.

Access denied for user 'root'@'localhost'

Error message
mariadb.OperationalError: Access denied for user 'root'@'localhost' (using password: YES)
Causes
  • The user’s credentials are incorrect
  • MariaDB authentication settings are not configured properly
Solutions
  1. Log in to MariaDB and check the user’s privileges.
    mysql -u root -p
    
  1. Grant the required privileges to the user.
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  1. Try connecting again.

Can't connect to MySQL server on 'localhost'

Error message
mariadb.OperationalError: Can't connect to MySQL server on 'localhost' (10061)
Causes
  • The MariaDB server is not running
  • The host setting is incorrect
Solutions
  1. Check whether the server is running.
    sudo systemctl status mariadb
    
  1. If the server is stopped, start it.
    sudo systemctl start mariadb
    
  1. Check that the host setting is correct.

Summary

In this section, we explained how to connect to MariaDB from Python.

  • Basic connection method using mariadb.connect()
  • A secure connection method using a .env file
  • Common connection errors and how to fix them

4. Creating Databases and Tables

Creating a database

In MariaDB, you need to create a database to store data. Let’s look at how to create a database using Python.

Create a database using a MariaDB management tool

You can create a database using the MariaDB command line (or GUI tools such as MySQL Workbench).

CREATE DATABASE sample_db;

To view the list of databases you created, use the following command:

SHOW DATABASES;

Create a database using Python

To create a database using Python, run the following code:

import mariadb

# Database connection (no database specified)
config = {
    "host": "localhost",
    "user": "root",
    "password": "password"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Create the database
    cursor.execute("CREATE DATABASE IF NOT EXISTS sample_db")

    print("Created database 'sample_db'.")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

By adding IF NOT EXISTS, you can prevent errors if a database with the same name already exists.

Creating a table

After creating the database, the next step is to create a table to store data.

Basic table structure

A table typically has a structure like the following:

Column nameData typeDescription
idINTUser ID (auto-increment)
nameVARCHAR(100)User name (up to 100 characters)
emailVARCHAR(100) UNIQUEEmail address (must be unique)
created_atDATETIMECreated date/time

Create a table with SQL

If you create a table using MariaDB SQL commands, write the following:

USE sample_db;

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

To view the list of tables, run:

SHOW TABLES;

Create a table using Python

Here is how to create the same table using a Python script.

import mariadb

# Koneksi basis data
config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # SQL pembuatan tabel
    table_creation_query = """
    CREATE TABLE IF NOT EXISTS users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    )
    """

    cursor.execute(table_creation_query)
    print("Tabel 'users' berhasil dibuat.")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

By adding IF NOT EXISTS, you can prevent errors if the table already exists.

How to choose data types

When designing tables, it is important to choose appropriate data types. Below is a summary of commonly used data types in MariaDB.

Data typeUse caseExample
INTInteger values (IDs, etc.)123
VARCHAR(n)Variable-length strings"Alice"
TEXTLong text (1,000+ characters)"This is a long text."
DATEDate2024-02-21
DATETIMEDate and time2024-02-21 12:34:56
BOOLEANBoolean valuesTRUE or FALSE

For example, it is common to use VARCHAR(100) for the name field, but if you need a longer string, TEXT can be a good option.

How to check and drop existing tables

Check existing tables

To check the tables in a database, use the following SQL:

SHOW TABLES;

To view a table’s detailed structure, run the DESCRIBE command:

DESCRIBE users;

Drop a table

To drop a table, use DROP TABLE:

DROP TABLE users;

To drop a table from Python, run the following code:

cursor.execute("DROP TABLE IF EXISTS users")

Summary

In this section, we explained how to create databases and tables in MariaDB to store data.

  • How to create a database in MariaDB
  • How to create a table using Python
  • How to choose appropriate data types
  • How to check and drop existing tables

Now the basic setup for MariaDB is complete. In the next section, we will explain CRUD operations (Create, Read, Update, Delete) in detail.

5. CRUD Operations (Create, Read, Update, Delete)

After creating the MariaDB database and tables, the next step is to perform CRUD operations. CRUD stands for Create, Read, Update, and Delete, which are the basic operations of a database.

In this section, we will explain how to manipulate MariaDB data using Python.

Inserting data (INSERT)

To add a new record to the database, use the INSERT statement.

Insert data using SQL

To insert data using MariaDB SQL, execute the following command:

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

To verify the inserted data, use the SELECT statement:

SELECT * FROM users;

Insert data using Python

To insert data using Python, run the following code:

import mariadb

# Pengaturan koneksi basis data
config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Masukkan data
    insert_query = "INSERT INTO users (name, email) VALUES (?, ?)"
    data = ("Alice", "alice@example.com")
    cursor.execute(insert_query, data)

    # Simpan perubahan
    conn.commit()
    print("Data berhasil disisipkan!")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

Key points:

  • Using ? placeholders helps prevent SQL injection.
  • If you do not execute conn.commit() , the data will not be saved to the database.

Retrieving data (SELECT)

To retrieve registered data, use the SELECT statement.

Retrieve data using SQL

To retrieve data using MariaDB SQL:

SELECT * FROM users;

To retrieve data with conditions, use the WHERE clause:

SELECT * FROM users WHERE email = 'alice@example.com';

Retrieve data using Python

To retrieve data using Python, run the following code:

import mariadb

config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Ambil data
    select_query = "SELECT id, name, email FROM users"
    cursor.execute(select_query)

    # Tampilkan data yang diambil
    for (id, name, email) in cursor:
        print(f"ID: {id}, Name: {name}, Email: {email}")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

Key points:

  • Execute SQL with cursor.execute(select_query) and retrieve data from the cursor object.
  • You can process records one by one using a for loop.

Updating data (UPDATE)

To modify registered data, use the UPDATE statement.

Update data using SQL

To update data using MariaDB SQL, execute:

UPDATE users SET name = 'Alice Smith' WHERE email = 'alice@example.com';

Update data using Python

To update data using Python, run the following code:

import mariadb

config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Perbarui data
    update_query = "UPDATE users SET name = ? WHERE email = ?"
    data = ("Alice Smith", "alice@example.com")
    cursor.execute(update_query, data)

    # Simpan perubahan
    conn.commit()
    print("Data berhasil diperbarui!")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

Deleting data (DELETE)

To remove unnecessary data, use the DELETE statement.

Delete data using SQL

To delete data using MariaDB SQL, execute:

DELETE FROM users WHERE email = 'alice@example.com';

Delete data using Python

To delete data using Python, run the following code:

import mariadb

config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Hapus data
    delete_query = "DELETE FROM users WHERE email = ?"
    data = ("alice@example.com",)
    cursor.execute(delete_query, data)

    # Simpan perubahan
    conn.commit()
    print("Data berhasil dihapus!")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Terjadi kesalahan: {e}")

Summary

In this section, we explained how to manipulate MariaDB data using Python.

  • Insert data (INSERT)
  • Retrieve data (SELECT)
  • Update data (UPDATE)
  • Delete data (DELETE)

You can now perform basic data operations in MariaDB using Python.

6. Transactions and Rollback (Ensuring Data Integrity)

Saat bekerja dengan basis data, penting untuk menggunakan transaksi untuk menjaga integritas data.
Secara khusus, kemampuan untuk mengembalikan data ke keadaan semula (rollback) ketika terjadi kesalahan selama pemrosesan sangat penting untuk menjaga konsistensi.

Dalam bagian ini, kami akan menjelaskan cara mengelola transaksi di MariaDB menggunakan Python.

What is a transaction?

Sebuah transaksi adalah mekanisme yang mengelompokkan serangkaian operasi basis data menjadi satu unit, meng‑commit semua perubahan jika setiap proses berhasil, dan melakukan rollback semua perubahan jika terjadi kesalahan.

Characteristics of transactions

  • Properti ACID
  • Atomicity : Semua operasi baik selesai dengan sukses atau tidak ada yang diterapkan.
  • Consistency : Integritas data dipertahankan.
  • Isolation : Transaksi bersamaan tidak saling mengganggu.
  • Durability : Setelah dikomit, perubahan disimpan secara permanen.

Basic transaction operations (COMMIT and ROLLBACK)

Transaksi MariaDB dapat dikontrol dengan perintah berikut:

CommandDescription
START TRANSACTION;Begin a transaction
COMMIT;Commit changes (cannot be undone after commit)
ROLLBACK;Cancel changes (restore the original state)

Using transactions in Python

Berikut adalah contoh dasar mengelola transaksi MariaDB menggunakan Python.

Managing multiple operations within a single transaction

Kode berikut memperlakukan beberapa operasi insert sebagai satu transaksi dan meng‑commit hanya jika semua operasi berhasil.

import mariadb

config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Start transaction
    conn.start_transaction()

    # Insert data
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Bob", "bob@example.com"))
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Charlie", "charlie@example.com"))

    # Commit if all operations succeed
    conn.commit()
    print("Data added successfully.")

    cursor.close()
    conn.close()
except mariadb.Error as e:
    print(f"Error occurred: {e}")
    conn.rollback()  # Roll back if an error occurs

Key points

  • Gunakan conn.start_transaction() untuk memulai transaksi.
  • Gunakan conn.commit() untuk menyelesaikan perubahan (tidak dapat dibatalkan setelah commit).
  • Jika terjadi kesalahan, gunakan conn.rollback() untuk membatalkan perubahan dan mengembalikan keadaan semula.

Transaction-based error handling

Kesalahan dapat terjadi selama operasi basis data.
Misalnya, alamat email duplikat (pelanggaran batasan UNIQUE) atau timeout server dapat terjadi.

Transaction management with error handling

Kode berikut menambahkan logika untuk melakukan rollback perubahan dan mengembalikan keadaan semula jika terjadi kesalahan selama pemrosesan.

import mariadb

config = {
    "host": "localhost",
    "user": "root",
    "password": "password",
    "database": "sample_db"
}

try:
    conn = mariadb.connect(**config)
    cursor = conn.cursor()

    # Start transaction
    conn.start_transaction()

    try:
        # First insert succeeds
        cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Dave", "dave@example.com"))

        # Second insert causes an error (duplicate email)
        cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Eve", "dave@example.com"))

        # Commit if all operations succeed
        conn.commit()
        print("Data inserted successfully.")

    except mariadb.Error as e:
        print(f"Error occurred during data processing: {e}")
        conn.rollback()  # Roll back on error
        print("Transaction rolled back.")

    cursor.close()
    conn.close()

except mariadb.Error as e:
    print(f"Database connection error: {e}")

Summary

Dalam bagian ini, kami menjelaskan dasar‑dasar transaksi dan cara mengimplementasikannya di Python.

  • Pentingnya transaksi dan properti ACID
  • Cara menggunakan commit() dan rollback() di Python
  • Manajemen transaksi yang digabungkan dengan penanganan kesalahan

7. Penanganan Kesalahan (Kesalahan Umum dan Solusinya)

Saat bekerja dengan MariaDB di Python, kesalahan dapat terjadi.
Khususnya, kesalahan koneksi basis data, kesalahan sintaks SQL, dan kesalahan integritas data umum terjadi, sehingga penting untuk memahami penyebabnya dan solusinya.

Pada bagian ini, kami memperkenalkan penyebab kesalahan umum dan cara memperbaikinya.

Access denied for user (Kesalahan otentikasi)

Error message

mariadb.OperationalError: Access denied for user 'root'@'localhost' (using password: YES)

Penyebab

  • Nama pengguna atau kata sandi tidak benar
  • Pengguna MariaDB tidak memiliki hak istimewa yang sesuai

Solusi

  1. Masuk ke MariaDB dan periksa hak istimewa pengguna
    mysql -u root -p
    
  1. Berikan hak istimewa kepada pengguna
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  1. Mulai ulang MariaDB
    sudo systemctl restart mariadb
    

Can't connect to MySQL server on 'localhost' (Kesalahan koneksi)

Error message

mariadb.OperationalError: Can't connect to MySQL server on 'localhost' (10061)

Penyebab

  • Server MariaDB tidak berjalan
  • Pengaturan host tidak benar

Solusi

  1. Periksa apakah server MariaDB sedang berjalan
    sudo systemctl status mariadb
    
  1. Jika server berhenti, jalankan kembali
    sudo systemctl start mariadb
    
  1. Aktifkan server untuk memulai secara otomatis
    sudo systemctl enable mariadb
    

Unknown database 'sample_db' (Basis data tidak ada)

Error message

mariadb.ProgrammingError: Unknown database 'sample_db'

Penyebab

  • Basis data yang ditentukan tidak ada
  • Ada kesalahan pengetikan pada nama basis data

Solusi

  1. Periksa daftar basis data
    SHOW DATABASES;
    
  1. Buat basis data jika belum ada
    CREATE DATABASE sample_db;
    

Table doesn't exist (Tabel tidak ada)

Error message

mariadb.ProgrammingError: Table 'sample_db.users' doesn't exist

Penyebab

  • Tabel yang ditentukan tidak ada
  • Basis data tidak dipilih menggunakan USE sample_db;

Solusi

  1. Periksa daftar tabel
    SHOW TABLES;
    
  1. Buat tabel jika belum ada
    CREATE TABLE users (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100) NOT NULL,
        email VARCHAR(100) UNIQUE NOT NULL,
        created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    );
    

Duplicate entry (Kesalahan data duplikat)

Error message

mariadb.IntegrityError: Duplicate entry 'alice@example.com' for key 'users.email'

Penyebab

  • Kolom email memiliki batasan UNIQUE, sehingga nilai duplikat tidak dapat dimasukkan

Solusi

  • Periksa duplikat sebelum memasukkan data
  • Gunakan ON DUPLICATE KEY UPDATE

Kode Python untuk mencegah duplikat

try:
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com"))
    conn.commit()
except mariadb.IntegrityError:
    print("Error: The email address already exists.")

Atau gunakan ON DUPLICATE KEY UPDATE

INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')
ON DUPLICATE KEY UPDATE name = 'Alice Updated';

Incorrect number of bindings (Tidak cocoknya jumlah parameter)

Error message

mariadb.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 2, and there are 1 supplied.

Penyebab

  • Jumlah parameter yang dibutuhkan oleh pernyataan SQL tidak cocok dengan jumlah argumen yang diberikan

Solusi

  • Pastikan jumlah placeholder cocok dengan jumlah parameter

Kode yang salah

cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice"))

Kode yang benar

cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com"))

Ringkasan

Pada bagian ini, kami menjelaskan kesalahan umum yang terjadi saat bekerja dengan MariaDB di Python dan cara mengatasinya.

  • Access denied for user (Kesalahan otentikasi)
  • Can't connect to MySQL server (Kesalahan koneksi)
  • Unknown database (Database tidak ada)
  • Table doesn't exist (Tabel tidak ada)
  • Duplicate entry (Kesalahan data duplikat)
  • Incorrect number of bindings (Jumlah parameter tidak cocok)

8. Kesimpulan

Dalam artikel ini, kami menjelaskan cara bekerja dengan MariaDB menggunakan Python, mulai dari konsep dasar hingga topik yang lebih lanjutan.
Dengan memahami operasi dasar basis data dan menerapkan penanganan kesalahan serta manajemen transaksi secara tepat, Anda dapat melakukan operasi data yang lebih aman dan efisien.

Ringkasan artikel

Pengaturan lingkungan

  • Cara menginstal MariaDB (Windows / Mac / Linux)
  • Cara menginstal pustaka konektor MariaDB (mariadb) untuk Python

Menyambungkan ke MariaDB

  • Metode koneksi basis data dasar
  • Koneksi aman menggunakan variabel lingkungan
  • Solusi untuk kesalahan koneksi umum

Membuat basis data dan tabel

  • Membuat basis data (SQL / Python)
  • Membuat tabel dan memilih tipe data
  • Memeriksa dan menghapus tabel yang ada

Operasi CRUD (Create, Read, Update, Delete)

  • Operasi data dasar menggunakan Python
  • Menggunakan placeholder untuk mencegah SQL injection
  • Penanganan kesalahan yang tepat

Transaksi dan rollback

  • Pentingnya transaksi (properti ACID)
  • Cara memulihkan data saat terjadi kesalahan (rollback)
  • Mengelola transaksi secara manual dengan menonaktifkan AutoCommit

Penanganan kesalahan (Kesalahan umum dan solusi)

  • Kesalahan otentikasi (Access denied for user)
  • Kesalahan koneksi (Can't connect to MySQL server)
  • Kesalahan basis data atau tabel tidak ditemukan
  • Kesalahan data duplikat (Duplicate entry)
  • Menangani deadlock dan menerapkan logika retry

Poin penting saat menggabungkan Python dan MariaDB

  1. Gunakan placeholder
    cursor.execute("INSERT INTO users (name, email) VALUES (?, ?)", ("Alice", "alice@example.com"))
    

→ Gunakan variabel bind alih-alih menyisipkannya langsung ke dalam pernyataan SQL untuk mencegah SQL injection.

  1. Kelola transaksi dengan tepat
  • Gunakan conn.commit() untuk menyimpan perubahan secara eksplisit.
  • Gunakan conn.rollback() saat terjadi kesalahan untuk mempertahankan integritas data.
  1. Terapkan penanganan kesalahan yang menyeluruh
  • Gunakan blok try-except untuk menangkap potensi kesalahan sebelumnya.
  • Siapkan strategi penanganan khusus untuk kesalahan seperti OperationalError dan IntegrityError.
  1. Pertimbangkan kinerja
  • Bulk insert (menyisipkan banyak catatan sekaligus)
  • Pengindeksan yang tepat (meningkatkan kinerja pencarian)

Sumber daya untuk pembelajaran lanjutan

Jika Anda ingin memperdalam pemahaman tentang integrasi Python dan MariaDB, pertimbangkan sumber daya berikut:

Dokumentasi resmi

Konten pembelajaran terkait

Buku yang direkomendasikan

Ringkasan

Dengan mengintegrasikan MariaDB dengan Python, Anda dapat mengaktifkan manajemen data berbasis skrip dan otomatisasi.
Dengan menerapkan tidak hanya operasi CRUD dasar tetapi juga penanganan kesalahan dan manajemen transaksi yang tepat, Anda dapat membangun sistem yang lebih aman dan lebih efisien.

Sebagai langkah selanjutnya, pertimbangkan untuk mempelajari manajemen data yang efisien dan integrasi API untuk menerapkan pengetahuan Anda pada operasi basis data yang praktis.