امروز توی یه سایتی بودم دیدم یه قسمت درباره اسکریپت های sql می گفت. منم تصمیم گرفتم در این نوشته بیام درباره دستورات SQL توی محیط پایتون صحبت کنم.
راستش اولش می خواستم از SQL Server استفاده کنم اما نرم افزارش تو سیستمم به مشکل خورد.
در نتیجه از Sqlite که دیتابیسی کاملا سبکی هست استفاده کردم.
این دیتابیس برای کار های سبک خوبه.
برای کار های سنگین تر و تجاری تر از دیتابیس های دیگه استفاده می شه. مثل پستگرس.
خب بریم روی هدفمون کار کنیم :
پکیج مدیریت دیتابیس اس کیو لایت رو در برنامه وارد می کنیم :
import sqlite3
تمامی اطلاعات مورد نیاز درباره نسخه پکیج دیتابیس براساس کد های زیر هست :
چگونه به پایگاه داده متصل شویم؟
چون این دیتابیس واسه یادگیری هست، اومدم با استفاده از آرگومانی که به connect دادم، گفتم یه دیتابیس موقت توی رم بساز که کارمونو باهاش راه بندازیم.
db = sqlite3.connect(':memory:')
یه چیزی رو هم همین الان می گم :
هر موقع کارمون با دیتابیس تموم شد، باید کانکشنی که به اون دیتابیس وصل کردیم رو قطع کنیم.
db.close()
برای اینکه بتونیم با دیتابیس توی محیط پایتون کار کنیم، باید کد زیر رو یکبار بنویسیم و اجرا کنیم و در حقیقت همه ی کارامونو با همین متغییری که در زیر تعریف کردم انجام بدیم.
حالا چجوری می تونیم جداولمونو بسازیم؟
جدولی با نام کتاب ها درست می کنیم و فیلد هاش رو هم تعریف می کنیم.
به این صورته که :
بعد از اینکه اسم جدول رو نوشتیم، داخل پرانتز شروع می کنیم به تعریف فیلد هایی که مد نظرمونه.
فیلد هایی که تعریف شده به ترتیب شامل : شناسه ی جدول هست که به عنوان کلید اصلی جدول معرفی شده، عنوان کتاب، نویسنده کتاب، قیمت کتاب و سال کتاب هست.
حالا به دیتابیس می گیم که جدول رو ثبت کنه.
db.commit()
چجوری جدولی که ساختم رو پاک کنم؟
چجوری اطلاعات رو به جداولم وارد کنم؟
من یکسری متغییر دارم و می خوام این متغییر ها رو داخل دیتابیس ثبت کنم.
بذارید یه رکورد دیگه هم اضافه کنم.
همونطور که می دونید روش بالا کمی زمان بر هست برای همینم اگه می خواید کمی سریع تر اتفاق بیوفته می تونید اطلاعات رو به صورت یک دیکشنری وارد کنید و از روش زیر استفاده کنید:
یه مدل دیگه :
چجوری می می تونم اینایی که به دیتابیس وارد کردم رو ببینیم؟
برای اینکار باید به اصطلاح کوئری بنویسیم. توی کوئری زیر گفتم که * یا همه ستون ها رو برام بیار و
هر چی اطلاعاتی که داری برام رو کن.
همونطور که می بینید اگه همین طوری کوئری رو اجرا کنیم، فقط یه آبجکت بهمون می ده.
اگه توی محیط منیجر دیتابیس هستید و همین کوئری رو بنویسید
و بعدش اف 5 رو بزنید بلافاصله نتیجه رو براتون میاره.
اما اگه مثل من توی محیط ژوپیتر هستید، می تونید برای نشون دادن نتیجه کوئری از پکیج پاندا استفاده کنید.
حالا چجوری میتونم بگم مثلا فقط ستون نویسنده و قیمت کتاب و عنوان رو بهم بده؟
نکته : اگه بخواین همین کد ها رو در محیط پایتون خام بنویسید، برای اجرا کردنشون از دو تابع می تونید کمک بگیرید.
اولی برای گرفتن یک ردیف هست.
در این روش ، برای دستیابی به هر کدام از اطلاعات، می تونید از روش زیر استفاده کنید:
برای گرفتن همه اطلاعات توی پایتون می تونید از تابع زیر استفاده کنید.
در ادامه یه مثالی هم برای این می زنم که نشون می ده چجوری میشه به جز جز این اطلاعات دسترسی داشته باشیم...
حالا اگه بخوایم بگیم کتابی که شناسه اش 3هست رو بده بهم چی کار باید کرد؟
چجوری میتونم ردیفی رو آپدیت کنم؟
چون توی محیط ژوپیتر هستم می تونستم با استفاده از پاندا هم نشون بدم :
چجوری میتونم ردیفی رو حذف کنم؟
چون توی محیط ژوپیتر هستم می تونستم با استفاده از پاندا هم نشون بدم.
خب به پایان این بخش رسیدیم. در این نوشته سعی کردم مباحثی که هر برنامه نویسی باید بدونه بنویسم.
اگه وقت شد در آینده درباره مهارت های کوئری نویسی هم نوشته ای رو منتشر خواهم کرد.
امیدوارم این نوشته براتون مفید بوده باشه.
از همراهیتون صمیمانه ممنونم ...