یک توسعه‌دهنده

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

معجون پایتون و sqlite

پنجشنبه, ۲۶ بهمن ۱۳۹۶، ۰۸:۱۴ ب.ظ

سلام دوستان،

در این پست از وب‌لاگ میخوام یکی از پرکاربرد ترین بخش های برنامه‌نویسی یعنی کار با دیتابیس رو اختصارا معرفی کنم.

ما انواع مختلفی از دیتابیس داریم: MySQL,Sqlite, NoSQL, MongoDB, Oracle, SQL Server, …. معروف‌ترین ها این‌ها هستن. در این پست من از دیتابیس sqlite ورژن ۳ استفاده میکنم چون یه دیتابیس سبک و فوق‌العاده‌س.

تقریبا هر دیتابیسی رو که شما انتخاب کنید برای برنامه‌نویسی کوئری های مشابهی داره پس اگر یک دیتابیس رو به خوبی بلد باشید می‌تونید با بقیه دیتابیس ها هم به راحتی کار کنید. بهترین جای یادگیری که قطعاً داکیومنت هر پروژه یا کتابخانه و … هست اما می‌تونید از این وب‌سایت برای خواندن توضیحات sqlite3 استفاده کنید.

خب بریم که با پایتون ۳ و sqlite3 یک دفترچه تلفن ساده درست کنیم که اسم و فامیلی و شماره تلفن رو ذخیره میکنه.

در ابتدای کار کتابخانه‌های مورد نیازمون رو import میکنیم:

import sqlite3 as db

from time import sleep

من قصد دارم هر کوئری رو در قالب یک متد معرفی کنم.

متد اول: ساختن دیتابیس

برای ساختن یک دیتابیس با sqlite3 و python این متد را لازم دارم:

def create_database():

    con = db.connect('database.db')

    con.close()

    print("OK - Database is created.")

حالا دیتابیس ما ساخته شد!

نوبت به این میرسه که یک جدول (Table) بسازیم که متد ساختن جدول به شکل زیر هست(اگر نیاز به توضیح بیشتر هست در بخش نظرات سؤال خودتون رو بپرسید.):

def create_table():

    con = db.connect('database.db')

    cur = con.cursor()

    cur.execute("create table contact (id integer primary key autoincrement, fullname text, phone text)")

    con.close()

    print("OK - Table is created now.")

و حالا جدول ما هم ساخته شد.

تابع insert یا وارد کردن مقادیری به جدول هم به شکل زیر هست :

def insert_contact():

    con = db.connect('database.db')

    cur = con.cursor()

 

    full_name = input("Enter Full name: ")

    phone = input("Enter phone number : ")

 

    cur.execute("insert into contact(fullname, phone) values ('{}', '{}')".format(full_name, phone))

 

    con.commit()

    con.close()

 

    print("OK - Contact is added successfully.")

برای اینکه بتوانیم مقادیر جدول را ببینیم از کوئری SELECT استفاده میکنیم که به شکل زیر هست:

def show_contact():

    con = db.connect('database.db')

    cur = con.cursor()

 

    cur.execute("select * from contact")

 

    contact = cur.fetchall()

    con.close()

 

    print(contact)

متد بعدی متد Update هست که کدش بصورت زیر هست:

def edit_contact():

    con = db.connect('database.db')

    cur = con.cursor()

 

    c_id = int(input("Enter an id for edit contact: "))

    fullname = input("Enter full name: ")

    phone = input("Enter phone number: ")

 

    cur.execute("update contact set fullname = '{1}', phone = '{2}' where id = {0}".format(c_id, fullname, phone))

 

    con.commit()

    con.close()

 

    print("OK - Contact is updated successfully.")

و در آخر حذف کردن یک رکورد هم به شکل زیر می‌باشید :

def delete_contact():

    con = db.connect('database.db')

    cur = con.cursor()

 

    c_id = int(input("Enter an id for edit contact: "))

 

    cur.execute("delete from contact where id = {}".format(c_id))

 

    con.commit()

    con.close()

 

    print("OK - Contact is deleted successfully.")

 

دقت داشته باشید که ما برای تمامی تغییراتمان به یک primary key نیاز داریم که در طول تمامی تغییرات باید ثابت بماند که در اینجا هنگام تعریف کردن جدول خانه id را قرار داده‌ایم.

 

و برای اینکه بتوانیم از متد هایمان استفاده کنیم از یک حلقه while استفاده میکنیم :

while True:

    options = int(input("#### Welcome ####\n# For first time you must create database(1) and table(2)\n1.Create database\n2.Create Table\n3.Insert contact\n4.Edit contact\n5.Delete contact\n6.Show contact\n7.Exit\n>>>"))

 

    if options == 1:

        create_database()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 2:

        create_table()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 3:

        insert_contact()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 4:

        edit_contact()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 5:

        delete_contact()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 6:

        show_contact()

        options = int(input("Continue? (Exit = 7)> "))

        if options == 7:

            print("Goodbye...")

            sleep(2)

            break

    elif options == 7:

        print("Goodbye...")

        sleep(2)

        break

 

 

موفق و پیروز باشید./

نظرات (۴)

خیلی خوب بود

با این کدت کارم راه افتاد.

ممنون بابت کدت

پاسخ:
خوشحالم که کمک کردم 
  • علیرضا آهنی
  • عالی بود خیلی بدردم خورد !

    پاسخ:
    خوشحال شدم =)

    الان این یه دفترچه تلفنه؟

    این دستور رو توی پایتون بزاریم برامون مثل دفتره تلفن عمل می کنه؟

    پاسخ:
    بله. خیلی ساده‌ست! که خودتون می‌تونید با خلاقیت بهترش کنید برای خودتون.
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی

    تمام حقوق مادی و معنوی این وبلاگ متعلق به وبلاگ سرزمین برنامه نویسی بوده و هر گونه کپی بردای بدون ذکر منبع غیرمجاز و از نظر ما حرام است