কম্পিউটার টিউটোরিয়াল

Python-এ PyMySQL ব্যবহার করে MySQL ডেটাবেস কানেকশন ও অপারেশন

MySQL সবচেয়ে জনপ্রিয় ওপেন-সোর্স ডেটাবেস। Python-এ PyMySQL লাইব্রেরি ব্যবহার করে MySQL-এ কানেক্ট, রিড, রাইট করা যায়।

PyMySQL ইনস্টলেশন

# pip ব্যবহার করে
pip install pymysql

# Anaconda ব্যবহার করে
conda install -c anaconda pymysql

# IDE থেকে (PyCharm, VS Code ইত্যাদি) প্যাকেজ ম্যানেজার দিয়ে

MySQL-এ কানেকশন এবং ভার্সন চেক

import pymysql

# ডেটাবেস কানেকশন
db = pymysql.connect(
    host="localhost",
    user="testuser",
    password="test123",
    database="TESTDB"
)

# কার্সর অবজেক্ট
cursor = db.cursor()

# SQL এক্সিকিউট
cursor.execute("SELECT VERSION()")

# ফলাফল ফেচ
data = cursor.fetchone()
print("Database version: %s" % data)

# কানেকশন বন্ধ
db.close()

আউটপুট:

Database version: 8.0.19

SQL কোয়েরি এক্সিকিউট এবং রেজাল্ট প্রসেস

import pymysql

db = pymysql.connect("localhost", "username", "paswd", "DBname")
cursor = db.cursor()

sql = "SELECT * FROM EMPLOYEE WHERE INCOME > %s" % (1000)

try:
    cursor.execute(sql)
    results = cursor.fetchall()
    
    for row in results:
        fname, lname, age, sex, income = row
        print("fname=%s, lname=%s, age=%d, sex=%s, income=%d" % 
              (fname, lname, age, sex, income))
except Exception as e:
    print("Error: unable to fetch data -", e)
finally:
    db.close()

আউটপুট:

fname=Jack, lname=Ma, age=31, sex=M, income=12000

সেরা অভ্যাস (Best Practices)

  • Parameterized Query: cursor.execute("SELECT * FROM t WHERE id=%s", (id_val,)) — SQL ইনজেকশন প্রতিরোধ।
  • Context Manager: with pymysql.connect(...) as db: — অটো ক্লোজ।
  • Connection Pooling: প্রোডাকশনে DBUtils.PooledDB বা SQLAlchemy ব্যবহার করুন।
  • Error Handling: ספেসফিক এক্সেপশন ক্যাচ করুন (pymysql.Error)।
  • DictCursor: cursor = db.cursor(pymysql.cursors.DictCursor) — ডিকশনারি রিটার্ন করে।
  1. Python MySQLdb মডিউল pip দিয়ে কীভাবে ইনস্টল করবেন?

  2. পাইথনে issuperset() ফাংশন

  3. পাইথনে লগিং (Logging) – সম্পূর্ণ গাইড

  4. পাইথনে ক্যালেন্ডার মডিউল – ক্যালেন্ডার প্রিন্ট, লিপ ইয়ার, মাস রেঞ্জ