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

পাইথনে SQLite ডাটাবেস ব্যবহার করে SQL অপারেশন


SQLite এবং পাইথন

পাইথনের বিল্ট-ইন sqlite3 মডিউল ব্যবহার করে SQLite ডাটাবেসের সাথে কাজ করা যায়। আলাদা সার্ভার ছাড়া ফাইল-ভিত্তিক ডাটাবেস।

কানেকশন স্থাপন


import sqlite3

# ডাটাবেস ফাইল তৈরি/ওপেন
conn = sqlite3.connect("tutorialspoint.db")

# কার্সর অবজেক্ট - SQL এক্সিকিউশনের মিডিয়েটর
cursor = conn.cursor()

টেবিল তৈরি ও ডেটা ইনসার্ট


# টেবিল তৈরি
create_table_sql = """
CREATE TABLE students (
    id INTEGER PRIMARY KEY,
    first_name VARCHAR(20),
    last_name VARCHAR(30),
    gender CHAR(1)
);
"""
cursor.execute(create_table_sql)

# ডেটা ইনসার্ট
cursor.execute('INSERT INTO students VALUES (1, "John", "Hill", "M");')
cursor.execute('INSERT INTO students VALUES (2, "Jessy", "Hill", "F");')
cursor.execute('INSERT INTO students VALUES (3, "Antony", "Hill", "M");')

# কমিট - পরিবর্তন সংরক্ষণ
conn.commit()

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

ডেটা কোয়েরি (SELECT)


conn = sqlite3.connect("tutorialspoint.db")
cursor = conn.cursor()

cursor.execute("SELECT * FROM students;")
students = cursor.fetchall()  # সব রো ফেচ করুন

print(students)
# [(1, 'John', 'Hill', 'M'), (2, 'Jessy', 'Hill', 'F'), (3, 'Antony', 'Hill', 'M')]

conn.close()

প্যারামিটারাইজড কোয়েরি (সিকিউরিটি)


# SQL ইনজেকশন প্রতিরোধে প্লেসহোল্ডার ব্যবহার করুন
cursor.execute("INSERT INTO students VALUES (?, ?, ?, ?)", 
               (4, "New", "Student", "M"))

# নামড প্লেসহোল্ডার
cursor.execute("INSERT INTO students (first_name, last_name, gender) VALUES (:fn, :ln, :g)",
               {"fn": "Jane", "ln": "Doe", "g": "F"})

কনটেক্সট ম্যানেজার (বেস্ট প্র্যাক্টিস)


# with স্টেটমেন্ট ব্যবহার করে অটো কমিট/রোলব্যাক
with sqlite3.connect("tutorialspoint.db") as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM students WHERE gender = ?", ("M",))
    male_students = cursor.fetchall()
    print(male_students)
# কানেকশন অটোমেটিক ক্লোজ হয়

উপসংহার

  • sqlite3 — পাইথনের বিল্ট-ইন, কোনো ইনস্টল লাগে না
  • সবসময় **প্যারামিটারাইজড কোয়েরি** ব্যবহার করুন (SQL ইনজেকশন প্রতিরোধ)
  • with স্টেটমেন্ট ব্যবহার করে রিসোর্স ম্যানেজমেন্ট
  • বড় অ্যাপ্লিকেশনের জন্য ORM (SQLAlchemy) বিবেচনা করুন
  1. পাইথনে লিস্ট ব্যবহার করে Stack এবং Queue বাস্তবায়ন

  2. পাইথন এবং Scrapy দিয়ে ওয়েব স্ক্রেপিং

  3. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো

  4. Mac-এ Python 3 আপগ্রেড ও ব্যবহার করা