0
هیچ محصولی در سبد خرید نیست.

مجموع: تومان

مدیریت پایگاه داده MySQL با پایتون

1398-07-04
مدیر سایت

شرکت پلاتین با یک مقاله ی دیگر در خدمت شما می باشد.

از قابلیت‌های یک زبان برنامه‌نویسی ، دسترسی به پایگاه‌های داده می باشد. پایتون هم از این قاعده مستثنی نیست. پایتون قابلیت ایجاد ارتباط با تمامی پایگاه‌های داده‌ای که امروزه استفاده می‌شود، را دارا می باشد. در این مقاله قرار است توسط کتابخانه‌ی PyMySQL به پایگاه داده MySQL وصل شویم. توجه کنید این مقاله مناسب افرادی می باشدکه به زبان SQL مسلط باشند.

تمامی کدهای این مقاله با پایتون ۳.۶ نوشته شده‌اند.

شروع

برای شروع کار ، نیاز است که MySQL نصب شده باشد. حتما باید نسخه مطابق با سیستم عامل خود را دانلود و نصب کنید.

سپس با اجرای دستور زیر در خط فرمان کتابخانه PyMySQL را نصب کنید.

pip install PyMySQL

برای اینکه از نصب آن مطمئن باشید ، از دستور زیر استفاده کنید:

pip show pymysql

و اگر با موفقیت نصب شده باشد، باید پیغامی مانند عبارت زیر را ببینید:

Name: PyMySQL
Version: 0.7.11
Summary: Pure Python MySQL Driver
Home-page: https://github.com/PyMySQL/PyMySQL/
Author: INADA Naoki
Author-email: songofacandy@gmail.com
License: MIT
Location: c:\users\user-name\python\lib\site-packages
Requires:

 

ساز و کارِ وصل شدن به پایگاه داده

برای وصل شدن به پایگاه داده ، باید یک اتصال ایجاد کرد. ایجاد اتصال با استفاده از متد connect انجام می‌شود. متد connect پارامترهای میزبان پایگاه داده، نام کاربری، رمز عبور و اسم پایگاه داده را گرفته و یک اتصال با پایگاه داده ایجاد می‌کند. سپس باید یک مکان‌نمایی (cursor) ایجاد کرده تا پیگیری کند که در کجای پایگاه داده قرار داریم. سپس با متد execute دستورات SQL را اجرا می‌کنیم. بعد از اجرای دستور SQL، باید مقدار عبارتی که مکان‌نمای ما به آن اشاره می‌کند را بگیریم. این کار را با متدهای fetchone و fetchall انجام می‌ گیرد. در آخر هم باید اتصال به پایگاه داده را بسته که اینکار با متد close انجام می‌گیرد.

ابتدا پایگاه داده‌ای با نام zerotohero_db ایجاد می‌کنیم که دارای یک جدول به نام authors می‌باشد. این جدول دارای ستون‌های last_name، name، id و specialty می‌باشد. سپس یک رکورد به آن اضافه می‌کنیم.

create database zerotohero_db;
use zerotohero_db;
 
create table authors(
	id int primary key,
	first_name varchar(50) not null,
	last_name varchar(50) not null,
	specialty varchar(50) not null
);
insert into authors values('1', 'navid', 'agz', 'python');

و کد پایتون به صورت زیر می‌شود:

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
sql = "SELECT VERSION()"
cursor.execute(sql)
results = cursor.fetchall()
print(results)
db.close()

و به صورت زیر خروجی می دهد:

'۵.۷.۱۱-log'

 

ایجاد جدول

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
sql = """create table topics(
             id int primary key,
             topic_name varchar(50) not null,
             articles_num int not null)"""
cursor.execute(sql)
db.close()

درج اطلاعات در پایگاه داده

برای درج داده به صورت زیر عمل می‌کنیم:

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
 
author_id = 2
author_name = '\'reza\''
author_last_name = '\'majidi\''
author_specialty = '\'web\''
author_values = str(author_id)+','+str(author_name)+','\
                +str(author_last_name)+','+str(author_specialty)
sql_1 = "insert into authors values("+author_values+")"
 
topic_id = 1
topic_name = '\'web\''
topic_article_num = 51
topic_values = str(topic_id)+','+str(topic_name)+','+str(topic_article_num)
sql_2 = "insert into topics values("+topic_values+")"
 
author_id_1 = 3
author_name_1 = '\'moein\''
author_last_name_1 = '\'bbp\''
author_specialty_1 = '\'ai\''
author_values_1 = str(author_id_1)+','+str(author_name_1)+','\
 +str(author_last_name_1)+','+str(author_specialty_1)
sql_3 = "insert into authors values("+author_values_1+")"
 
try:
    cursor.execute(sql_1)
    cursor.execute(sql_2)
    cursor.execute(sql_3)
    
    db.commit()
except:
    db.rollback()
 
db.close()

در عملیات‌هایی که تغییراتی در پایگاه داده ایجاد می‌کنند، باید از متد commit استفاده شود، تا تغییرات در پایگاه داده انجام شوند. عمل commit را در try…except می گذاریم که اگر مشکلی بوجود آمد دستور اجرا نشده و توسط متد rollback، پایگاه داده به حالت قبل خود بازگردد.

پاک کردن از پایگاه داده

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
 
sql = 'delete from authors where id=2'
 
try:
    cursor.execute(sql)
    db.commit()
except:
    db.rollback()
    
db.close()

 

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

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
 
sql = 'update authors set specialty=\'python and machine learning\' where id=1'
 
try:
    cursor.execute(sql)
    db.commit()
except:
    db.rollback()
    
db.close()

 

خواندن اطلاعات از پایگاه داده

import pymysql
db = pymysql.connect('localhost', 'username', 'password', 'zerotohero_db')
cursor = db.cursor()
 
sql = 'select * from authors'
try:
    cursor.execute(sql)
    results = cursor.fetchall()
    for row in results:
        print("ROW {}".format(results.index(row)))
        print("ID: {}\nName: {}\nLast_name: {}\nSpecialty: {}".format(row[0],
                                                                 row[1],
                                                                 row[2],
                                                                 row[3]))
        print()
except:
    print("Unable to fetch data")
 
db.close()

در مواقعی که بخواهیم یک رکورد از پایگاه داده بخوانیم از متد fetchone استفاده می‌کنیم، در غیر این صورت از fetchall استفاده می‌کنیم.

 

در این مقاله سعی شد تا انجام اعمال اصلی بر روی پایگاه داده MySQL پوشش داده شود.

با پلاتین همراه باشید.

نظرشما

نوشته های مرتبط


چه عواملی باعث می شود تا تبدیل به یک برنامه نویس خوب شویم؟ پرسیدن این سوال از خود و . . .

4 دقیقه
ادامه مطلب

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

3 دقیقه
ادامه مطلب

معرفی ابزار های طراحی وب سایت     Web Programming اگر برای اولین بار باشد که بخواهد بر . . .

5 دقیقه
ادامه مطلب

لیست فرم های خارجی برای بک لینک رایگان بروز رسانی: استفاده از فرم‌های خارجی برای ب . . .

8 دقیقه
ادامه مطلب