আজকে আমরা পাইথন দিয়ে কিভাবে ডাটাবেজ এর সাথে কানেক্ট করা যায় এবং সেখান থেকে কিভাবে ডাটা বের করে নিয়ে আশা যায় সেগুলো দেখব । ডাটাবেজ হিসেবে আমরা এখানে 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()
আজ এ পর্যন্তই আল্লাহ হাফেজ ।