Python中的MySqldb连接

Mysql是使用最广泛的开源Db之一。Python提供了连接到该数据库并使用该数据库来存储和检索其数据的方法。

安装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
#打开数据库连接
db = pymysql.connect("localhost","testuser","test123","TESTDB" )

#使用Cursor()方法准备游标对象
cursor = db.cursor()

#使用Execute()方法执行SQL查询。
cursor.execute("SELECT VERSION()")

#使用fetchone()方法获取单行。
data = cursor.fetchone()
print ("Database version : %s " % data)

#断开与服务器的连接
db.close()

输出结果

运行上面的代码给我们以下结果-

Database version : 8.0.19

执行数据库命令

要执行数据库命令,我们先确定一个数据库游标和一个要传递到该游标的Sql查询。然后,我们使用cursor.execute方法从游标执行中获取结果。

示例

import pymysql
#打开数据库连接
db = pymysql.connect("localhost","username","paswd","DBname" )
#使用Cursor()方法准备游标对象
cursor = db.cursor()
sql = "SELECT * FROM EMPLOYEE \
      WHERE INCOME > '%d'" % (1000)
try:
   #执行SQL命令
   cursor.execute(sql)
   #获取列表列表中的所有行。
   results = cursor.fetchall()
   for row in results:
      fname = row[0]
      lname = row[1]
      age = row[2]
      sex = row[3]
      income = row[4]
      #现在打印获取的结果
      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