دیتابیس MySql در پایتون

Shape Image One
Shape Image One
 Shape Image Four
 Shape Image Four
 Shape Image Four
 Shape Image Four
 Shape Image Four
 Shape Image Four

دیتابیس در پایتون

زبان برنامه نویسی پایتون (python) از دیتابیس های متنوعی مانند PostgreSQL, MySQL, and SQLite پشتیبانی میکند که دیتابیس SQLite احتیاجی به نصب ندارد. زیرا به صورت پیش فرض در کتابخانه ها و ماژول های پایتون (python) وجود دارد. اما دیتابیس های PostgreSQL و MySQL به صورت پیش فرض وجود ندارند و باید دیتابیس در پایتون را با دستور pip نصب کرد.

تیم رکسار در این مقاله قصد دارد دیتابیس MySQL را در پایتون (python) آموزش دهد.

ابتدا با استفاده از دستور زیر، ماژول و کتابخانه دیتابیس MySQL را در پایتون نصب کنید تا بتوانید از آن استفاده کنید.

pip install mysql-connector-python

حالا میتوانید MySQL را در پروژه خود استفاده کنید.

هر دیتابیسی مانند PostgreSQL, MySQL, and SQLite و … در هر زبان برنامه نویسی مانند php , python , c# , java  و… چندین عمل ثابت دارد که عبارتند از :

  • عملیات ساختن دیتابیس (Create Database)
  • عملیات ساختن جدول (Create Table)
  • عملیات حذف جدول (Drop Table)
  • عملیات وارد کردن دیتا و اطلاعات به دیتابیس (Insert Data)
  • عملیات نمایش دیتا و اطلاعات در دیتابیس (Select Data)
  • عملیات بروز رسانی و آپدیت اطلاعات و دیتا در دیتابیس (Update Data)
  • عملیات حذف اطلاعات و دیتا در دیتابیس (Delete Data)

در ابتدا شما باید بدانید هر پایگاه داده یا همان دیتابیس (database) باید شامل حداقل یک جدول (Table) باشد.

جدول (table) در دیتابیس (database) چیست و چه وظیفه ای دارد؟

جدول (table) یکی از اجزا اصلی تشکیل دهنده دیتابیس (database) است که برای قرارگیری داده های پروژه ما مورد استفاده قرار میگیرند. هر جدول شامل تعدادی سطر و ستون است. عکس زیر یک دیتابیس (database) را نشان میدهد که نام آن rexxar است و شامل یک جدول (table) به نام users است.

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

  • سطر و ستون های جدول users در دیتابیس rexxar را میتوانید در عکس زیر ببینید :

جدول users در دیتابیس rexxar

  • در عکس بالا جدول users شامل 5 ستون میباشد. به این معنا که هر کاربر در دیتابیس پروژه ما، 5 ویژگی به نام هایid , firstname , userchatid , refral , score دارد.

نصب ماژول و کتابخانه MySQL :

  • محیط cmd یا bash را باز کنید و دستور زیر را در آن وارد کنید تا کتابخانه و ماژول MySQL در سیستم شما نصب شود. با نصب بودن MySQL در سیستم شخصی شما، قادر به استفاده از توابع این کتابخانه هستید :
python -m pip install mysql-connector-python
  • بعد از نصب MySQL در پروژه خود باید ماژول یا کتابخانه MySQL را با استفاده از کد زیر import کنید :
import mysql.connector

اولین قدم ساخت پایگاه داده یا دیتابیس (database) :

برای ساختن پایگاه داده، شما احتیاج به یک هاست، نام کاربری (یوزرنیم) و کلمه عبور (پسورد) پایگاه داده دارید. که اگر از سیستم شخصی خود استفاده میکنید، باید با استفاده از نرم افزاری مانند XAMPP (زمپ – برای دانلود کلیک کنید)، localhost خود را فعال کنید. تا بتوانید از سیستم خود به عنوان یک هاست استفاده کنید. در این صورت نام کاربری (یوزرنیم) شما root میشود و کلمه عبور (پسورد) برای شما در نظر گرفته نمیشود.

تصویری از محیط زمپ XAMPP :

محیط نرم افزار xampp

عملیات ساختن دیتابیس (Create Database) :

  • بعد از راه اندازی زمپ XAMPP، نوبت به ساختن دیتابیس (database) میرسد. با استفاده از کد زیر، دیتابیس MySQL شما ایجاد میشود :
import mysql.connector
database = mysql.connector.connect (
        localhost = “localhost”,
        username = “root”,
        Password = “”,
)
cursor = database.cursor()
event = "CREATE DATABASE rexxar"
try:
        cursor.execute(event)
        print(“دیتابیس شما با موفقیت ساخته شد .”)
except:
        print(“مشکلی در ساختن دیتابیس وجود دارد !”)
  • نکته 1 : عبارات username , password ، مربوط به نام کاربری (یوزرنیم) و کلمه عبور محیط زمپ XAMPP خودتان است. که در صورت مواجه با ارور، باید سعی کنید username , password صحیح را درون کد جایگذاری کنید.
  • نکته 2 : در متغیر event، نام دیتابیس قرار میگیرد. مانند کد بالا که در متغیر event نام دیتابیس ما (rexxar) قرار گرفته است.

عملیات ساختن جدول (Create Table) :

  • بعد از ساخته شدن پایگاه داده، نوبت به ساخت جدول (Table) میرسد که با استفاده از کد زیر، جدول (Table) شما ساخته میشود :
database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event = "CREATE TABLE users"
try :
       cursor.execute(event)
       print(“جدول شما با موفقیت ساخته شد”)
except :
       print(“درساختن جدول ، مشکلی بوجود آمده است”)
  • نکته : در کد بالا ، متغیر event حاوی نام جدول (table) ما در دیتابیس rexxar میباشد که شما میتوانید نام دلخواه جدول خود را جایگذاری کنید. پس از اجرا کد بالا جدولی بنام users در دیتابیس rexxar ساخته میشود.

عملیات حذف جدول (Drop Table) :

database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event = "DROP TABLE users"
try :
       cursor.execute(event)
       print(“جدول شما با موفقیت ، حذف شد .”)
except :
       print(“درحذف جدول ، مشکلی بوجود آمده است”)
  • نکته : در کد بالا ، متغیر event حاوی نام جدول (table) ما در دیتابیس rexxar میباشد که شما میتوانید نام دلخواه جدول خود را جایگذاری کنید. پس از اجرا کد بالا جدولی بنام users در دیتابیس rexxar پاک میشود.

عملیات وارد کردن دیتا و اطلاعات به دیتابیس (Insert Data) :

  • بعد از ساخته شدن دیتابیس و جدول، شما مجاز به وارد کردن دیتا یا همان اطلاعات به جدول (table) خودتان هستید. با استفاده از کد زیر، میتوانید مشخصات یک فرد که شامل نام و آدرس و سن او میباشد، به جدول users وارد کنید :
database = mysql.connector.connect (
  host="localhost",
  user="root",
  password="",
  database="rexxar"
)

cursor = database.cursor()
event = "INSERT INTO users (name ,age, address) VALUES (%s , %s , %s)"
value = (“Rexxar”, 2 , “IRAN Tehran “)
try :
       cursor.execute(event,value)
       database.commit()
      database.close()
       print(“اطلاعات با موفقیت به جدول شما ، اضافه شد  “)
except:
       print(“در اضافه شدن اطلاعات ، مشکلی بوجود آمده است .“)
  • نکته 1 : متغیر event که بخشی از آن تشکیل شده از name , age , address میباشد، در حقیقت ویژگی های یک شخص را در جدول users نشان میدهد.
  • نکته 2 : متغیر value در حقیقت مقادیری برای ویژگی های یک شخص در جدول users میباشد. به طور مثال در کد بالا فردی به نام Rexxar با 2 سال سن و آدرس IRAN Tehran، به جدول users اضافه میشود.
  • هشدار : اگر مقادر ویژگی های یک کاربر، درون یک متغیر قرار نگیرند، باگ و آسیب پذیری SQL Injection بوجود می آید و احتمال هک شدن شما بالا میرود.

عملیات نمایش دیتا و اطلاعات در دیتابیس (Select Data) :

  • با استفاده از قطعه کد زیر، میتوانید تمامی اطلاعات جدول users که درون دیتابیس rexxar قرار گرفته است، را ببینید :
database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event =“SELECT * FROM users”
cursor.execute(event)
Datas = cursor.fetchall()
print(“Datas”)
  • به طور مثال اگر بخواهید فقط آدرس کاربری که نام آن rexxar است را نمایش دهید، از دستور WHERE مانند کد زیر استفاده کنید :
database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event =“SELECT address FROM users WHERE name = %s”
value = (“rexxar”,)
cursor.execute(event,value)
Data = cursor.fetchone()
print(“Data”)

عملیات بروز رسانی و آپدیت اطلاعات و دیتاها در دیتابیس (Update Data) :

  • به طور مثال اگر بخواهید یک ویژگی مثل آدرس یک کاربر مانند rexxar را در جدول users بروز رسانی و آپدیت کنید :
database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event = “UPDATE users SET address = %s WHERE name = %s”
value = (“Toronto Canada” ,”rexxar”)
              try :
                       cursor.execute(event,value)
             database.commit()
             database.close()
                       print(“با موفقیت آپدیت شد”)
            except:
                        print(“مشکلی در آپدیت کردن وجود دارد”)

عملیات حذف اطلاعات و دیتاها در دیتابیس (Delete Data) :

  • اگر بخواهید کاربری که به طور مثال نام آن rexxar است را در جدول users ، پاک یا delete کنید :
database = mysql.connector.connect (
  		host="localhost",
  		user="root",
  		password="",
  		database="rexxar"
)
cursor = database.cursor()
event = “DELETE FROM users WHERE name = %s”
value = (“rexxar”,)
              try :
                       cursor.execute(event,value)
             database.commit()
             database.close()
                       print(“کاربر مورد نظر با موفقیت حذف شد . ”)
            except:
                        print(“مشکلی در حذف کاربر وجود دارد .”)

نکته مهم : در عملیات های بالا، عملیات هایی مانند قرار دادن اطلاعات (Insert)، پاک کردن اطلاعات و آپدیت احتیاج به commit کردن داشتند. چرا که دستور commit باعث ثبت تغییرات میشود و اگر این دستور در کد قرار نگیرد ، تغییرات لحاظ نمیشوند.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

*

code