Sama halnya bahasa pemograman lainnya, Python juga mendukung berbagai jenis database salah satunya MySQL yang merupakan salah satu sistem manajemen basisdata SQL yang sangat populer untuk saat ini. Disini saya menggunakan Python versi 3 dan menggunakan modul PyMySQL.
Instalasi Modul PyMySQL
Modul Python PyMySQL bisa dipasang menggunakan pip dengan perintah :
1 |
pip install PyMySQL |
Pastikan modul PyMySQL telah terpasang dengan baik.

Dasar Integrasi Python dan Database MySQL
Membuat Koneksi Database
Untuk dapat melakukan operasi pada database kita harus mengatur konfigurasi database yang akan kita hubungkan. Terlebih dahulu kita import modul PyMySQL:
1 2 3 4 5 6 |
import pymysql con = pymysql.connect(host='localhost', user='root', password='password', db='learnpython') |
Kita menggunakan fungsi pymysql.connect() dengan parameter host database, user, password dan nama database.
Membuat Tabel
Mari kita coba membuat table sederhana pada database kita dengan Python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
def create_table(): try: with con.cursor() as c: # Menghapus Tabel jika sebelumnya telah dibuat c.execute("DROP TABLE IF EXISTS users") # Membuat Tabel sql = """ CREATE TABLE users ( id int NOT NULL AUTO_INCREMENT, email varchar(50), name varchar(50), age int(3), PRIMARY KEY (id)) """ c.execute(sql) con.commit() finally: con.close() |
Pada baris ke-6 c.execute("DROP TABLE IF EXISTS users") kita telebih dahulu memberitahu interpreter Python untuk menghapus table users jika sebelumnya tabel tersebut telah ada. Pada baris ke-9 kita mendeklarasikan struktur tabel yang akan kita buat, lalu memerintahkan interpreter Python untuk mengeksekusi struktur tabel tersebut dengan fungsi c.execute(sql) kemudian menyimpan perubahan dengan fungsi con.commit()
Memasukkan Data (Insert)
Disini kita sudah mempunyai tabel users didatabase kita, mari kita masukan beberapa data:
1 2 3 4 5 6 7 8 9 10 |
def insert_record(): try: with con.cursor() as c: sql = "INSERT INTO users (email, name, age) VALUES (%s, %s, %s)" c.execute(sql, ('anggriyulio@gmail.com', 'Anggri Yulio', 25)) con.commit() finally: con.close() |
Perintah diatas akan memasukan satu record baru ke tabel users. Pada kondisi tertentu kita ingin memasukan data banyak data kedalam satu table, kita bisa melakukan looping untuk memasukan banyak record atau lebih mudahnya dengan menggunakan fungsi c.executemany() untuk memasukan banyak data sekaligus (bulk insert).
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def insert_record(): try: with con.cursor() as c: sql = "INSERT INTO users (email, name, age) VALUES (%s, %s, %s)" c.executemany(sql, [ ('jane@email.com', 'Jane Doe', 26), ('john@gmail.com', 'Jane Doe', 28), ]) con.commit() finally: con.close() |
Mengubah Data (Update)
Dari proses diatas kita telah mempunyai 3 record didalam tabel users

Data Users
Selanjutnya kita coba ubah record dengan id 1, dimana kita akan mengubah umur (age) pada record tersebut menjadi 30.
1 2 3 4 5 6 7 8 9 |
def update_record(): try: with con.cursor() as c: sql = "UPDATE users SET age=%s WHERE id=%s" c.execute(sql, (30, 1)) con.commit() finally: con.close() |
Hasil :

Update Users MySQL Python
Menghapus Data
Disini kita coba menghapus data dari tabel users yang mempunyai umur (age) lebih besar dari 28.
1 2 3 4 5 6 7 8 9 |
def delete_record(): try: with con.cursor() as c: sql = "DELETE FROM users WHERE age > %s" c.execute(sql, 28) con.commit() finally: con.close() |
Hasil :

Python MySQL Delete
Membaca Data (Read)
Untuk membaca semua record kita menggunakan fungsi fetchall() atau menggunakan fungsi fetchone() jika hanya memanggil satu record saja.
1 2 3 4 5 6 7 8 9 10 |
def read_record(): try: with con.cursor() as c: sql = "SELECT*FROM users" c.execute(sql) data = c.fetchall() print(data) finally: con.close() |
Kesimpulan
Python maupun bahasa pemograman lainnya mempunyai kesamaan sintak SQL dalam setiap operasi database MySQL ataupun database SQL (Structured Query Language) lainnya. Hanya saja proses pemanggilkan serta konfigurasi dasarnya saja yang berbeda.
Incoming Terms
- Fungsi Fetchone Di Sql
- Membuat Database Di Python
- Fungsi Fetchall Pada Database Cursor Py
- Python Dengan Mysql
- Modul Mysql
