مهدی مشایخی
مهدی مشایخی
خواندن ۵ دقیقه·۲ سال پیش

دیتابیس SQLite در پایتون - مهدی مشایخی

دیتابیس SQLite در پایتون - مهدی مشایخی
دیتابیس SQLite در پایتون - مهدی مشایخی


پایگاه های داده یک جزء حیاتی در توسعه نرم‌افزار هستند. از این گذشته، ما باید داده ها را در مکانی جمع‌آوری کنیم که بتوانیم به صورت دیجیتالی به آن ها برای خواندن، نوشتن، به روز رسانی و حذف دسترسی داشته باشیم.

در این آموزش، نحوه استفاده از SQLite با پایتون را خواهید آموخت. یادگیری SQLite یک راه عالی برای یادگیری نحوه عملکرد پایگاه های داده و نحوه انجام عملیات های اولیه CRUD (ایجاد، خواندن، به روز رسانی، حذف) است.

بسیاری از موقعیت‌های توسعه‌دهنده نرم‌افزار شامل کار با پایگاه‌های داده است، و اگر زمانی به ایجاد یک برنامه کاربردی در مقیاس کامل (مانند یک برنامه رسانه‌های اجتماعی یا یک بازی آنلاین) فکر می‌کنید، قطعاً به یک پایگاه داده نیز نیاز خواهید داشت.

این آموزش بسیاری از مفاهیم اولیه و عملیات ساده را توضیح می دهد تا بتوانید نحوه کار با پایگاه های داده را بهتر درک کنید.

دیتابیس SQLite چیست؟

این SQLite یک کتابخانه موتور پایگاه داده SQL (زبان جستجوی ساختاریافته) است که با بسیاری از زبان ها کار می کند.

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

یک پایگاه داده SQLite به عنوان یک فایل دیسک، مشابه فایل CSV (مقادیر جدا شده با کاما) ذخیره می شود. اما SQLite مزایای زیادی نسبت به استفاده از فایل CSV دارد:

  • این زبان با استفاده از C نوشته شده است. C یک زبان کامپایل شده با تایپ ایستا است که بسیار سریعتر از بسیاری از زبان ها از جمله پایتون است.
  • این سبک وزن است، بنابراین بهتر و سریعتر از خواندن از یک فایل CSV عمل می کند.
  • راه‌اندازی آن آسان است
  • می تواند پرس و جوهای پیچیده تری را مدیریت کند.
  • در صورتی که در آینده به شما موظف به استفاده از SQL یا MySQL شود، یادگیری آن مفیدتر است.

نحوه راه‌اندازی SQLite

در اینجا مثالی از استفاده از SQLite با پایتون آورده شده است. من از IDE آنلاین Replit استفاده می کنم ، اما شما می توانید هر IDE را که دوست دارید دنبال کنید.

ابتدا یک پروژه پایتون با یک فایل ایجاد می کنم main.py. من از کتابخانه SQL CS50 استفاده خواهم کرد که می توانید با اجرای آن نصب کنید pip3 install cs50.

اولین مرحله ایجاد یک فایل database.db در پوشه ریشه است که می توانید با وارد کردن دستور زیر در ترمینال این کار را انجام دهید:

touch database.db

در این مرحله، کد زیر باید به main.py اضافه شود:

from cs50 import SQL db = SQL(&quotsqlite:///database.db&quot)

نحوه ایجاد جدول پایگاه داده

مرحله بعدی ایجاد جدول در پایگاه داده است. SQL داده ها را در جداول ذخیره می کند که شبیه جداول موجود در Excel یا Google Sheets هستند. کد این است:

db.execute(&quotCREATE TABLE IF NOT EXISTS users (name TEXT, age NUMBER, fav_food STRING)&quot)

برای تفکیک این، db پایگاه داده ای است که داده ها در آن نوشته می شوند. بعد، یک دستور اجرا می شود. اگر جدول usersوجود ندارد، جدولی با نام کاربران، با نام ستون ها name، ageو fav_foodبا انواع داده ها برای هر مقدار مشخص شده ایجاد کنید.

نحوه نوشتن در پایگاه داده

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

db.execute(&quotINSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)&quot, &quoteesa&quot, 14, &quotpizza&quot)

مقدار "eesa" در ستون نام، مقدار 14 در ستون سن و مقدار "پیتزا" در ستون fav_food درج می شود.

کد اضافه کردن کاربر دیگر (در این مورد، باب)، این خواهد بود:

db.execute(&quotINSERT INTO users (name, age, fav_food) VALUES(?, ?, ?)&quot, &quotbob&quot, 20, &quotburgers&quot)

نحوه خواندن از پایگاه داده

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

people = db.execute(&quotSELECT * FROM users&quot) print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'pizza'}]

کد بالا نسبتاً ساده است. * در عبارت SELECT هر آنچه در پایگاه داده است را انتخاب می کند.

فقط برای انتخاب مقادیر خاص، می توانید از عبارت DISTINCT استفاده کنید. مثلاً بگویید شما فقط غذای مورد علاقه هر کاربر را می خواهید. با اجرای کد زیر می توانید این کار را انجام دهید:

people = db.execute(&quotSELECT DISTINCT fav_food FROM users&quot) print(people)

همچنین می توانید مقادیر را با استفاده از کاما در یک عبارت SELECT DISTINCT جدا کنید:

people = db.execute(&quotSELECT DISTINCT age, fav_food FROM users&quot) print(people)

اگر بخواهیم فقط داده های باب را بخوانیم، و بقیه را نادیده بگیریم، چه؟ می توانید این کار را با استفاده از بند SQL WHERE انجام دهید:

people = db.execute(&quotSELECT * FROM users WHERE name='bob'&quot) print(people)

برای پرس و جوهای پیچیده‌تر چطور؟ می توانید این کار را با استفاده از نحو AND، OR و NOT انجام دهید. برای پرس و جوهای پیچیده‌تر می توانید بند های WHERE را با این کلمات کلیدی جدا کنید.

people = db.execute(&quotSELECT * FROM users WHERE name='bob' AND age=20&quot) print(people)

این داده ها را برای باب چاپ می کند، زیرا باب 20 است.

نحوه به روز رسانی یک ردیف در پایگاه داده

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

db.execute(&quotUPDATE users SET fav_food='shawarma' WHERE name='eesa'&quot)

نحوه حذف یک ردیف در پایگاه داده

برای حذف یک ردیف، از DELETE Syntax استفاده کنید (همانطور که ممکن است حدس بزنید). به نظر می رسد این است:

db.execute(&quotDELETE FROM users WHERE name='bob'&quot) # goodbye bob people = db.execute(&quotSELECT * FROM users&quot) print(people) # [{'name': 'eesa', 'age': 14, 'fav_food': 'shawarma'}]

برای حذف تمام سطرهای جدول، فقط عبارت WHERE را حذف کنید:

db.execute(&quotDELETE FROM users&quot) # :( people = db.execute(&quotSELECT * FROM users&quot) print(people) # []



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

ارتباط با من :

وبسایت : mahdimashayekhi.ir

گیت هاب: MahdiMashayekhi-AI

لینکدین: MahdiMashayekhi

توییتر: Mashayekhi_AI

یوتیوب: MahdiMashayekhi

اینستاگرام: MahdiMashayekhi.ai

sqliteدیتابیسپایتون
مهدی مشایخی هستم. برنامه نویس هوش مصنوعی و پایتون در زمینه یادگیری ماشینی و عمیق. به همه کمک میکنم تا با هم رشد کنیم! من در توییتر: https://twitter.com/Mashayekhi_AI
شاید از این پست‌ها خوشتان بیاید