https://blog.csdn.net/Oscer2016/article/details/70257024

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', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)""" #sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 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, Name, 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'" % ('') 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, 密码:Hp12345.,用户名和密码需要改成你自己的mysql用户名和密码,并且要创建数据库TESTDB,并在TESTDB数据库中创建好表Student
db = pymysql.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', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)""" #sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 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, Name, 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'" % ('') 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

使用 mysql.connector:

#!/usr/bin/env python
# coding=utf-8 import mysql.connector def connectdb():
print('连接到mysql服务器...')
# 打开数据库连接
# 用户名:hp, 密码:Hp12345.,用户名和密码需要改成你自己的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,
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', 80),
('005', 'HP', 70),
('006', 'YF', 66),
('007', 'TEST', 100)""" #sql = "INSERT INTO Student(ID, Name, Grade) \
# VALUES ('%s', '%s', '%d')" % \
# ('001', 'HP', 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, Name, 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'" % ('') 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数据库的三种方法的更多相关文章

  1. python操作MySQL数据库的三个模块

    python使用MySQL主要有两个模块,pymysql(MySQLdb)和SQLAchemy. pymysql(MySQLdb)为原生模块,直接执行sql语句,其中pymysql模块支持python ...

  2. python接口自动化(三十八)-python操作mysql数据库(详解)

    简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...

  3. Python操作MySQL数据库(步骤教程)

    我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...

  4. 将Excel数据导入mysql数据库的几种方法

    将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...

  5. Python操作MySQL数据库9个实用实例

    用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...

  6. python操作mysql数据库的常用方法使用详解

    python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...

  7. C++连接mysql数据库的两种方法

    本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...

  8. 【转】python操作mysql数据库

    python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...

  9. Python 操作MySQL 数据库

    Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...

随机推荐

  1. e803. 获得和设置JProgressBar的值

    // To create a progress bar, see e801 创建一个JProgressBar组件 // Get the current value int value = progre ...

  2. ant学习笔记-taskdef

    1.声明task jar包中指定的task <taskdef name="xmltask“ classname="com.oopsconsultancy.xmltask.an ...

  3. Solaris10 修改hostname

    修改/etc/nodename 及 /etc/hosts & /etc/hostname.<NIC Name> 这三个文件就可以了 重启

  4. log4net按照不同的【LEVEL】级别输出到不同文件

    Log4net按照不同级别写入多个日志文件 2012-02-08 15:06 by Fred-Xu, ... 阅读, ... 评论, 收藏, 编辑 在一个Web应用项目中,我使用了Fluent NHi ...

  5. Redis 缓存 + Spring 的集成示例(转载)

    1. 依赖包安装 pom.xml 加入: <dependency> <groupId>org.springframework.data</groupId> < ...

  6. Java常量池的理解

    1.常量池的好处常量池是为了避免频繁的创建和销毁对象而影响系统性能,其实现了对象的共享.例如字符串常量池,在编译阶段就把所有的字符串文字放到一个常量池中.(1)节省内存空间:常量池中所有相同的字符串常 ...

  7. Memcached存储机制

    Memcached存储机制 memcached 内存管理 分析(转) 缓存.缓存算法和缓存框架简介 memcached全面剖析–PDF总结篇

  8. 深入解析Java AtomicInteger原子类型

    深入解析Java AtomicInteger原子类型 在并发编程中,需要确保当多个线程同时访问时,程序能够获得正确的结果,即实现线程安全.线程安全性定义如下: 当多个线程访问一个类时,无论如何调度运行 ...

  9. eclipse中断点不生效

    摘录自:http://blog.sina.com.cn/s/blog_496117520100kw6b.html Eclipse下Debug时弹出错误“Unable to install breakp ...

  10. C++中使用ODBC API访问数据库例程

    使用ODBC API访问数据库简单流程,供参考使用:  ODBC API 123456789101112131415161718192021222324252627282930313233343536 ...