আজকে আমরা পাইথন দিয়ে কিভাবে ডাটাবেজ এর সাথে কানেক্ট করা যায় এবং সেখান থেকে কিভাবে ডাটা বের করে নিয়ে আশা যায় সেগুলো দেখব । ডাটাবেজ হিসেবে আমরা এখানে MS(Microsoft) SQL ব্যবহার করব ।

প্রথমে আমাদেরকে একটি third-party মডিউল ইনস্টল করে নিতে হবে ।প্রশ্ন আসতেই পারে থার্ডপার্টি মডিউল কেন লাগবে কারণ হলো পাইথনের লাইব্রেরীতে এই মডিউলটি নেই । আপনারা আপনাদের কমান্ড প্রম্পট (Command Prompt) নিচের লাইনটি লিখলেই মডিউলটি ইন্সটল হয়ে যাবে ।

pip install pyodbc

এখন নিচের ছবির মত এসকিউএল সার্ভার কে কানেক্ট করে দেব ।

এখন labtask নামে একটি ডাটাবেজ তৈরি করব ।

labtask ডাটাবেজের মধ্যে Student(dbo.Student) নামে একটি টেবিল তৈরি করব । আমি এখানে তিনটি টেবিল তৈরি করেছি ।কিন্তু আমি Student টেবিল থেকে কিভাবে ডাটা বের করতে হয় সেটি দেখাবো । আশা করা যায় একটা পারলে আপনারা বাকিগুলো নিজে নিজে করতে পারবেন ।

উল্লেখ্য টেবিলটি Student নামের পরিবর্তে dbo.Student নামে দেখাচ্ছে এ ব্যাপারে আরও জানতে হলে পাশের লিংকটিতে চলে যেতে হবে । SQL Server Docs

এবার আমরা মূল কানেকশন কোডে চলে যাব ।

import pyodbc

প্রথমেই মডিউলটি উপরের মত করে ইমপোর্ট করে নিব ।

এখন ড্রাইভার এ আমরা আমাদের সার্ভারকে সিলেক্ট করব । সার্ভারে আমাদের সার্ভারে নামটি দিব এবং আমরা যে নামে ডাটাবেজ তৈরি করেছি ওই নামটি দিয়ে দিব । ( উপরের স্ক্রিনশটে সকল তথ্য দেয়া আছে )

conn = pyodbc.connect(
    'Driver={SQL Server};'
    'Server=AFRIDI-007\AFRIDI;'
    'Database=labtask;'
    'Trusted_Connection=yes;'
)

এখন আমরা দেখব আমাদের ডাটাবেজ এর সাথে কানেকশন তৈরি করব ।

cursor = conn.cursor()
cursor.execute('SELECT * FROM dbo.Student')
for row in cursor:
  print(row)
  conn.close()

উল্লেখ্য cursor.execute('SELECT * FROM dbo.Student') মূলত একটি ডাটাবেজ কুয়েরি ; যা দিয়ে দেখার চেষ্টা করা হয়েছে যে আমাদের ডেটাবেজে কোন ডাটা আছে কিনা । কানেকশন Successful হলে এবং টেবিলের মধ্যে আপনার কোন ডাটা ইনসার্ট করা থাকলে তা নিচের মত দেখাবে ।

(172-15-1010,'Rahim','Hasan',25)
(172-15-1020,'Karim','Hassan',24)

তো সঠিকভাবে আমাদের ডাটাবেজের সাথে কানেকশন তৈরি হল । এখন আমরা চাইলেই নিজের পছন্দ মত কুয়েরি করে দেখতে পাবো ডেটাবেজের আদ্যোপান্ত ।

সম্পূর্ন কোড :

import pyodbc
conn = pyodbc.connect(
    'Driver={SQL Server};'
    'Server=AFRIDI-007\AFRIDI;'
    'Database=labtask;'
    'Trusted_Connection=yes;'
)
cursor = conn.cursor()
cursor.execute('SELECT * FROM dbo.Student')
for row in cursor: 
  print(row)
  conn.close()

আজ এ পর্যন্তই আল্লাহ হাফেজ ।