ابوالفضل وکیلی
ابوالفضل وکیلی
خواندن ۴ دقیقه·۵ سال پیش

پایتون و SQL

امروز توی یه سایتی بودم دیدم یه قسمت درباره اسکریپت های sql می گفت. منم تصمیم گرفتم در این نوشته بیام درباره دستورات SQL توی محیط پایتون صحبت کنم.

راستش اولش می خواستم از SQL Server استفاده کنم اما نرم افزارش تو سیستمم به مشکل خورد.
در نتیجه از Sqlite که دیتابیسی کاملا سبکی هست استفاده کردم.
این دیتابیس برای کار های سبک خوبه.
برای کار های سنگین تر و تجاری تر از دیتابیس های دیگه استفاده می شه. مثل پستگرس.

خب بریم روی هدفمون کار کنیم :


پکیج مدیریت دیتابیس اس کیو لایت رو در برنامه وارد می کنیم :

import sqlite3

تمامی اطلاعات مورد نیاز درباره نسخه پکیج دیتابیس براساس کد های زیر هست :

Connecting to the Database

چگونه به پایگاه داده متصل شویم؟
چون این دیتابیس واسه یادگیری هست، اومدم با استفاده از آرگومانی که به connect دادم، گفتم یه دیتابیس موقت توی رم بساز که کارمونو باهاش راه بندازیم.

db = sqlite3.connect(':memory:')

یه چیزی رو هم همین الان می گم :
هر موقع کارمون با دیتابیس تموم شد، باید کانکشنی که به اون دیتابیس وصل کردیم رو قطع کنیم.

db.close()

برای اینکه بتونیم با دیتابیس توی محیط پایتون کار کنیم، باید کد زیر رو یکبار بنویسیم و اجرا کنیم و در حقیقت همه ی کارامونو با همین متغییری که در زیر تعریف کردم انجام بدیم.

CREATE TABLE

حالا چجوری می تونیم جداولمونو بسازیم؟
جدولی با نام کتاب ها درست می کنیم و فیلد هاش رو هم تعریف می کنیم.
به این صورته که :
بعد از اینکه اسم جدول رو نوشتیم، داخل پرانتز شروع می کنیم به تعریف فیلد هایی که مد نظرمونه.
فیلد هایی که تعریف شده به ترتیب شامل : شناسه ی جدول هست که به عنوان کلید اصلی جدول معرفی شده، عنوان کتاب، نویسنده کتاب، قیمت کتاب و سال کتاب هست.

حالا به دیتابیس می گیم که جدول رو ثبت کنه.

db.commit()

DROP TABLE

چجوری جدولی که ساختم رو پاک کنم؟

INSERT

چجوری اطلاعات رو به جداولم وارد کنم؟
من یکسری متغییر دارم و می خوام این متغییر ها رو داخل دیتابیس ثبت کنم.

بذارید یه رکورد دیگه هم اضافه کنم.

همونطور که می دونید روش بالا کمی زمان بر هست برای همینم اگه می خواید کمی سریع تر اتفاق بیوفته می تونید اطلاعات رو به صورت یک دیکشنری وارد کنید و از روش زیر استفاده کنید:

یه مدل دیگه :

retrieve

چجوری می می تونم اینایی که به دیتابیس وارد کردم رو ببینیم؟
برای اینکار باید به اصطلاح کوئری بنویسیم. توی کوئری زیر گفتم که * یا همه ستون ها رو برام بیار و
هر چی اطلاعاتی که داری برام رو کن.

همونطور که می بینید اگه همین طوری کوئری رو اجرا کنیم، فقط یه آبجکت بهمون می ده.

اگه توی محیط منیجر دیتابیس هستید و همین کوئری رو بنویسید
و بعدش اف 5 رو بزنید بلافاصله نتیجه رو براتون میاره.
اما اگه مثل من توی محیط ژوپیتر هستید، می تونید برای نشون دادن نتیجه کوئری از پکیج پاندا استفاده کنید.

حالا چجوری میتونم بگم مثلا فقط ستون نویسنده و قیمت کتاب و عنوان رو بهم بده؟

نکته : اگه بخواین همین کد ها رو در محیط پایتون خام بنویسید، برای اجرا کردنشون از دو تابع می تونید کمک بگیرید.

اولی برای گرفتن یک ردیف هست.

در این روش ، برای دستیابی به هر کدام از اطلاعات، می تونید از روش زیر استفاده کنید:

برای گرفتن همه اطلاعات توی پایتون می تونید از تابع زیر استفاده کنید.

در ادامه یه مثالی هم برای این می زنم که نشون می ده چجوری میشه به جز جز این اطلاعات دسترسی داشته باشیم...

Where

حالا اگه بخوایم بگیم کتابی که شناسه اش 3هست رو بده بهم چی کار باید کرد؟

UPDATE

چجوری میتونم ردیفی رو آپدیت کنم؟

چون توی محیط ژوپیتر هستم می تونستم با استفاده از پاندا هم نشون بدم :

DELETE

چجوری میتونم ردیفی رو حذف کنم؟

چون توی محیط ژوپیتر هستم می تونستم با استفاده از پاندا هم نشون بدم.

خب به پایان این بخش رسیدیم. در این نوشته سعی کردم مباحثی که هر برنامه نویسی باید بدونه بنویسم.

اگه وقت شد در آینده درباره مهارت های کوئری نویسی هم نوشته ای رو منتشر خواهم کرد.

امیدوارم این نوشته براتون مفید بوده باشه.

از همراهیتون صمیمانه ممنونم ...

پایتونpythonsqlsqlitecrud
instagram : @a_vakily7
شاید از این پست‌ها خوشتان بیاید