Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การเชื่อมต่อ MySqldb ใน Python


Mysql เป็นหนึ่งใน Dbs โอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายมากที่สุด Python มีวิธีเชื่อมต่อกับ DB นี้ และใช้ DB เพื่อจัดเก็บและดึงข้อมูลจากมัน

ติดตั้ง pymysql

ขึ้นอยู่กับสภาพแวดล้อมของ python ที่คุณใช้ แพ็คเกจ pymysql สามารถติดตั้งได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้

# From python console
pip install pymysql
#Using Anaconda
conda install -c anaconda pymysql
# Add modules using any python IDE
pymysql

กำลังเชื่อมต่อกับ MySql

ตอนนี้เราสามารถเชื่อมต่อกับสภาพแวดล้อม Mysql โดยใช้รหัสต่อไปนี้ หลังจากเชื่อมต่อแล้ว เราก็กำลังค้นหาเวอร์ชันของฐานข้อมูล

ตัวอย่าง

import pymysql
# Open database connection
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

# prepare a cursor object using cursor() method
cursor = db.cursor()

# execute SQL query using execute() method.
cursor.execute("SELECT VERSION()")

# Fetch a single row using fetchone() method.
data = cursor.fetchone()
print ("Database version : %s " % data)

# disconnect from server
db.close()

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

Database version : 8.0.19

การดำเนินการคำสั่งฐานข้อมูล

ในการรันคำสั่ง DB เราสร้างเคอร์เซอร์ db และคำสั่ง sql ที่จะส่งผ่านไปยังเคอร์เซอร์นั้น จากนั้นเราใช้เมธอด cursor.execute เพื่อให้ได้ผลลัพธ์จากการดำเนินการเคอร์เซอร์

ตัวอย่าง

import pymysql
# Open database connection
db = pymysql.connect("localhost","username","paswd","DBname" )
# prepare a cursor object using cursor() method
cursor = db.cursor()
sql = "SELECT * FROM EMPLOYEE \
      WHERE INCOME > '%d'" % (1000)
try:
   # Execute the SQL command
   cursor.execute(sql)
   # Fetch all the rows in a list of lists.
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      # Now print fetched result
      print "fname=%s,lname=%s,age=%d,sex=%s,income=%d" % \
            (fname, lname, age, sex, income )
except:
   print "Error: unable to fecth data"
# disconnect from server
db.close()

ผลลัพธ์

การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -

fname = Jack, lname = Ma, age = 31, sex = M, income = 12000