微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python操作MySQL数据库的三种方法总结

1. MysqLdb 的使用

(1) 什么是MysqLdb?

MysqLdb 是用于 Python 连接 MysqL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MysqL C API 上建立的。

(2) 源码安装 MysqLdb: https://pypi.python.org/pypi/MySQL-python

$ tar zxvf MysqL-python-*.tar.gz
$ cd MysqL-python-*
$ python setup.py build
$ python setup.py install

(3) MysqLdb 的使用:

#!/usr/bin/env python
# coding=utf-8

import MysqLdb

def connectdb():
 print('连接到MysqL服务器...')
 # 打开数据库连接
 # 用户名:hp,密码:Hp12345.,用户名和密码需要改成你自己的MysqL用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
 db = MysqLdb.connect("localhost","hp","Hp12345.","TESTDB")
 print('连接上了!')
 return db

def createtable(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # 如果存在表Sutdent先删除
 cursor.execute("DROP TABLE IF EXISTS Student")
 sql = """CREATE TABLE Student (
   ID CHAR(10) NOT NULL,Name CHAR(8),Grade INT )"""

 # 创建Sutdent表
 cursor.execute(sql)

def insertdb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 插入语句
 sql = """INSERT INTO Student
   VALUES ('001','CZQ',70),('002','LHQ',80),('003','MQ',90),('004','WH',('005','HP',('006','YF',66),('007','TEST',100)"""

 #sql = "INSERT INTO Student(ID,Name,Grade) \
 # VALUES ('%s','%s','%d')" % \
 # ('001',60)
 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
 except:
  # Rollback in case there is any error
  print '插入数据失败!'
  db.rollback()

def querydb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 查询语句
 #sql = "SELECT * FROM Student \
 # WHERE Grade > '%d'" % (80)
 sql = "SELECT * FROM Student"
 try:
  # 执行sql语句
  cursor.execute(sql)
  # 获取所有记录列表
  results = cursor.fetchall()
  for row in results:
   ID = row[0]
   Name = row[1]
   Grade = row[2]
   # 打印结果
   print "ID: %s,Name: %s,Grade: %d" % \
    (ID,Grade)
 except:
  print "Error: unable to fecth data"

def deletedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 删除语句
 sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交修改
  db.commit()
 except:
  print '删除数据失败!'
  # 发生错误时回滚
  db.rollback()

def updatedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 更新语句
 sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
 except:
  print '更新数据失败!'
  # 发生错误时回滚
  db.rollback()

def closedb(db):
 db.close()

def main():
 db = connectdb() # 连接MysqL数据库

 createtable(db)  # 创建表
 insertdb(db)  # 插入数据
 print '\n插入数据后:'
 querydb(db) 
 deletedb(db)  # 删除数据
 print '\n删除数据后:'
 querydb(db)
 updatedb(db)  # 更新数据
 print '\n更新数据后:'
 querydb(db)

 closedb(db)   # 关闭数据库

if __name__ == '__main__':
 main()

运行结果:

2. PyMysqL 的使用

(1) 什么是 PyMysqL

PyMysqL 是 Python 中用于连接 MysqL 服务器的一个库,它遵循 Python 数据库 API 规范 V2.0,并包含了 pure-Python MysqL 客户端库。

(2) 安装 PyMysqL

pip install PyMysqL

(3) 使用 PyMysqL

#!/usr/bin/env python
# coding=utf-8

import pyMysqL

def connectdb():
 print('连接到MysqL服务器...')
 # 打开数据库连接
 # 用户名:hp,用户名和密码需要改成你自己的MysqL用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
 db = pyMysqL.connect("localhost",Grade)
 except:
  print "Error: unable to fecth data"

def deletedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 删除语句
 sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交修改
  db.commit()
 except:
  print '删除数据失败!'
  # 发生错误时回滚
  db.rollback()

def updatedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 更新语句
 sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
 except:
  print '更新数据失败!'
  # 发生错误时回滚
  db.rollback()

def closedb(db):
 db.close()

def main():
 db = connectdb() # 连接MysqL数据库

 createtable(db)  # 创建表
 insertdb(db)  # 插入数据
 print '\n插入数据后:'
 querydb(db) 
 deletedb(db)  # 删除数据
 print '\n删除数据后:'
 querydb(db)
 updatedb(db)  # 更新数据
 print '\n更新数据后:'
 querydb(db)

 closedb(db)   # 关闭数据库

if __name__ == '__main__':
 main()

运行结果:

3. MysqL.connector 的使用

(1) 什么是 MysqL.connector?

由于 MysqL 服务器以独立的进程运行,并通过网络对外服务,所以,需要支持 Python 的 MysqL 驱动来连接到 MysqL 服务器。

目前,有两个 MysqL 驱动:

mysql-connector-python:是 MysqL 官方的纯 Python 驱动;

MysqL-python :是封装了 MysqL C驱动的 Python 驱动。

(2) 安装 MysqL.connector:

pip install mysql-connector-python
pip install MysqL-python

(3) 使用 MysqL.connector:

#!/usr/bin/env python
# coding=utf-8

import MysqL.connector

def connectdb():
 print('连接到MysqL服务器...')
 # 打开数据库连接
 # 用户名:hp,用户名和密码需要改成你自己的MysqL用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
 db = MysqL.connector.connect(user="hp",passwd="Hp12345.",database="TESTDB",use_unicode=True)
 print('连接上了!')
 return db

def createtable(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # 如果存在表Sutdent先删除
 cursor.execute("DROP TABLE IF EXISTS Student")
 sql = """CREATE TABLE Student (
   ID CHAR(10) NOT NULL,Grade)
 except:
  print "Error: unable to fecth data"

def deletedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 删除语句
 sql = "DELETE FROM Student WHERE Grade = '%d'" % (100)

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交修改
  db.commit()
 except:
  print '删除数据失败!'
  # 发生错误时回滚
  db.rollback()

def updatedb(db):
 # 使用cursor()方法获取操作游标 
 cursor = db.cursor()

 # sql 更新语句
 sql = "UPDATE Student SET Grade = Grade + 3 WHERE ID = '%s'" % ('003')

 try:
  # 执行sql语句
  cursor.execute(sql)
  # 提交到数据库执行
  db.commit()
 except:
  print '更新数据失败!'
  # 发生错误时回滚
  db.rollback()

def closedb(db):
 db.close()

def main():
 db = connectdb() # 连接MysqL数据库

 createtable(db)  # 创建表
 insertdb(db)  # 插入数据
 print '\n插入数据后:'
 querydb(db) 
 deletedb(db)  # 删除数据
 print '\n删除数据后:'
 querydb(db)
 updatedb(db)  # 更新数据
 print '\n更新数据后:'
 querydb(db)

 closedb(db)   # 关闭数据库

if __name__ == '__main__':
 main()

运行结果:

以上这篇Python操作MysqL数据库的三种方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐