استفاده از SQLite در Python
در این تاپیک نحوه ارتباط برقرار کردن با پایگاه SQLite در Python توسط کتابخانه sqlite3 که توسط Gerhard Häring و بر اساس PEP 249 نوشته شده به اختصار مطرح میشه .
دقت کنید که تو این تاپیک کلیات کار با این کتابخانه مطرح میشه تا منبعی باشه برای دوستان علاقه مند به شروع یادگیری Python ، مباحث جزئی کار با این کتابخانه از حوصله این تاپیک خارج هست .
اتصال به پایگاه داده SQLite
طبق روال هر برنامه ای برای شروع کتابخانه های مورد نیاز ( در اینجا sqlite3 ) رو وارد میکنیم :
import sqlite3;
برای استفاده از یک پایگاه داده ابتدا نیاز هست تا به اون متصل بشیم ، برای اینکار نیاز هست تا ابتدا یک شئ Connection ایجاد و از اون برای اتصال استفاده کنیم :
Conn = sqlite3.connect('C:\\Database.db');
با کد بالا ، اگر فایل پایگاه در مسیر مشخص شده موجود بود که اتصال با اون برقرار میشه و اگر موجود نبود پایگاه داده ای با نام مذکور در مسیر مشخص شده ساخته میشه و اتصال با اون برقرار میشه .
اگر با SQLite کار کرده باشید باید بدونید که این پایگاه داده قابلیت ساخت In Memory Database ها رو هم داره ، یعنی بدون اینکه فایل فیزیکی روی دیسک ساخته بشه در داخل Memory یک پایگاه داده با تمام قابلیت های پایگاه های معمول در اختیار شما قرار داره و سرعت بسیار بالایی هم نسبت به پایگاه های فیزیکی داره ، برای ساخت In Memory Database ها توسط کتابخانه sqlite3 کافیه به جای آدرس و نام بانک مورد نظر از ':memory:' استفاده کنید تا بانک در حافظه موقت ایجاد بشه ، یعنی :
Conn = sqlite3.connect(':memory:');
نکته : با توجه به اینکه این پایگاه در حافظه موقت ساخته میشه ، با بسته شدن Connection به هر دلیل پایگاه داده دیگر قابل دسترس نخواهد بود .
ساخت Cursor و استفاده از پایگاه
خوب ، برای اجرای دستورات T-SQL نیاز به یک Cursor داریم که به صورت زیر ایجاد میشه :
MyCursor = Conn.cursor();
برای اجرای دستورات T-SQL کافیه متد execute از شئ cursor ساخته شده رو با دستور T-SQL مورد نظر به عنوان پارامتر فراخوانی کنیم ، مثلا :
MyCursor.execute('CREATE TABLE Employee (ID integer, FName text, LName text, Age smallint)')
کد بالا جدولی با نام Employee شامل فیلدهای ID, FName, LName, Age رو در پایگاه داده ای که به اون متصل هستیم ایجاد میکنه .
مطابق با روند بالا دیگر دستورات T-SQL رو هم میشه به همین شیوه اجرا کرد ، مثلا اضافه کردن یک رکورد به همین جدول :
MyCursor.execute("INSERT INTO Employee VALUES (1,'Mojtaba','Tajik',21)")
برای ثبت تغییرات در بانک باید متد commit مربوط به connection رو فراخوانی کنیم :
Conn.commit();
دقت کنید که اگر تغییرات با متد Commit تثبیت نشوند بعد از بستن connection تغییراتی در بانک اعمال نمیشود و این یعنی تمام تغییرات داده شده پر .. !
و بعد از پایان کار با بانک متد close مربوط به connction رو فراخوانی میکنیم :
Conn.close();
دقت کنید که اگر پایگاهتون رو داخل Memory ساخته باشید با بستن connection پایگاه از روی حافظه حذف میشه و به هیچ وجه امکان اتصال مجدد به اون میسر نیست .
نقل قول: استفاده از SQLite در Python
ممنون بابت مطالب کاربردی و مفیدتون انجمنتون کامل و بی نقص موفق باشید