Python操作MySQL数据库的三种方法
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数据库的三种方法的更多相关文章
- python操作MySQL数据库的三个模块
python使用MySQL主要有两个模块,pymysql(MySQLdb)和SQLAchemy. pymysql(MySQLdb)为原生模块,直接执行sql语句,其中pymysql模块支持python ...
- python接口自动化(三十八)-python操作mysql数据库(详解)
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...
- Python操作MySQL数据库(步骤教程)
我们经常需要将大量数据保存起来以备后续使用,数据库是一个很好的解决方案.在众多数据库中,MySQL数据库算是入门比较简单.语法比较简单,同时也比较实用的一个.在这篇博客中,将以MySQL数据库为例,介 ...
- 将Excel数据导入mysql数据库的几种方法
将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面 ...
- Python操作MySQL数据库9个实用实例
用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-pytho ...
- python操作mysql数据库的常用方法使用详解
python操作mysql数据库 1.环境准备: Linux 安装mysql: apt-get install mysql-server 安装python-mysql模块:apt-get instal ...
- C++连接mysql数据库的两种方法
本文主要介绍了C++连接mysql数据库的两种方法,希望通过本文,能对你有所帮助,一起来看. 现在正做一个接口,通过不同的连接字符串操作不同的数据库.要用到mysql数据库,以前没用过这个数据库,用a ...
- 【转】python操作mysql数据库
python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库 ...
- Python 操作MySQL 数据库
Python 操作 MySQL 数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的 ...
随机推荐
- asp 写文件
'写文件 Sub WriteToTextFile (FileUrl,byval Str,CharSet) set fso = Server.CreateObject("Scripting.F ...
- Unity------Unity 脚本基类 MonoBehaviour 与 GameObject 的关系
Unity 脚本基类 MonoBehaviour 与 GameObject 的关系 标签: unity脚本 2017-03-27 12:55 395人阅读 评论(0) 收藏 举报 分类: Unity ...
- OpenStack Keystone架构
一. Keystone简介 1. OpenStack Keystone简介 2. Keystone安装与部署 2.1 包安装Keystone 2.2 源码安装源码安装 3 配置运行Keystone 3 ...
- 让不支持MVC3的服务器/空间/虚拟主机 支持MVC3 (前提是必须支持 .net 4.0才可以)
在有的时候,你用的VPS,服务器或者是虚拟空间可能是没有安装MVC3的,下面我们就自己来手动来让虚拟空间支持(前提是空间必须是.net 4.0的,因为MVC3是在4.0下运行) 我们先在web.con ...
- Salt-ssh批量自动安装被控端salt-mini
Salt-ssh是Saltstack的另外一种管理方式,无需安装minion端,可以运行salt的一切功能,管理和使用方法基本和salt一样.但是,salt-ssh并没有继承原来的ZeroMQ通讯架构 ...
- hibernate 中的session和事务(Transaction)
在使用hibernate开发时,遇到最多的就是session与事务,那么他们两个有什么关系呢?下面我来抛砖引玉: 1.session是hibernate中的以及缓存机制,是用来对数据进行增删改查的一个 ...
- 了解ASP.NET Core 依赖注入,看这篇就够了 于2017年11月6日由jesseliu发布
DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET Core的DI实现以及对实例 ...
- linux中chown命令
chown将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改变权限的文件列表,支持通配符.系统管理员经常使用chown命令,在将文件拷贝 ...
- 安卓开发笔记——关于Handler的一些总结(上)
接上篇文章<安卓开发笔记——关于AsyncTask的使用>,今天来讲下在安卓开发里"重中之重"的另一个异步操作类Handler. 今天打算先讲下关于Handler的一些 ...
- UNIX环境编程学习笔记(23)——信号处理初步学习
lienhua342014-10-29 1 信号的概念 维基百科中关于信号的描述是这样的: 在计算机科学中,信号(英语:Signals)是 Unix.类 Unix 以及其他 POSIX 兼容的操作系统 ...