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

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

از قابلیت‌های یک زبان برنامه‌نویسی ، دسترسی به پایگاه‌های داده می باشد. پایتون هم از این قاعده مستثنی نیست. پایتون قابلیت ایجاد ارتباط با تمامی پایگاه‌های داده‌ای که امروزه استفاده می‌شود، را دارا می باشد. در این مقاله قرار است توسط کتابخانه‌ی 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 پوشش داده شود.

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

All Comments:

  1. رهنما

    ۰۸/۲۱/۱۳۹۸

    با سلام و عرض خسته نباشید
    لطفا درباره نصب pymysql و فایل نصب wheel هم توضیج بفرمایید
    با تشکر

دیدگاه شما:

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

تکنولوژی های استفاده شده در netflix | Netflix TechStack

۱۴

آذر
react, SWIFT, The best startup, اخبار, استارت اپ, بازاریابی, بازاریابی محتوا, تجارت, تحقیقات بازار, جاوا اسکریپت, طراحی اپلیکیشن

تکنولوژی های استفاده شده در netflix | Netflix TechStack

در این مقاله قصد داریم تکنولوژی های مورد استفاده در Netflix رو براتون شهر بدیم . پس ادامه مطلب رو دنبال کنید 🙂 Tech stack یا پشته فناوری به مجموعه‌ای از فناوری‌ها، زبان‌ها، ابزارها و سرویس‌هایی اشاره دارد که در […]

۲۴

اردیبهشت
هوش مصنوعی

معرفی بهترین ابزار هوش مصنوعی

ابزار هوش مصنوعی (Artificial Intelligence) به دسته‌ای از تکنولوژی‌ها گفته می‌شود که به کامپیوترها اجازه می‌دهد تا به صورت خودکار، هوشمندانه و بدون نیاز به دخالت انسان، مسائل را حل کنند و تصمیم‌هایی بگیرند. در این روش، کامپیوتر با استفاده[…]

http://platinco.ir/tag/python/

۱۴

اردیبهشت
پایتون

آموزش کتابخانه pygame

انواع روش های ساخت بازی با پایتون Python یکی از زبان‌های محبوب برای توسعه بازی است و به دلیل سادگی و قابلیت استفاده آن، توسعه دهندگان بازی‌های زیادی از آن استفاده می‌کنند. در ادامه، انواع روش‌های ساخت بازی با پایتون[…]