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', 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'" % ('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, 密码: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'" % ('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, 密码: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'" % ('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数据库的三种方法总结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • python3操作mysql数据库的方法
  • 使用Python操作MySQL的一些基本方法
  • Python MySQLdb模块连接操作mysql数据库实例
  • python简单实现操作Mysql数据库
  • 在Python程序中操作MySQL的基本方法
  • python操作mysql数据库
  • Python操作MySQL简单实现方法
时间: 2018-01-29

使用Python操作MySQL的一些基本方法

前奏 为了能操作数据库, 首先我们要有一个数据库, 所以要首先安装Mysql, 然后创建一个测试数据库python_test用以后面的测试使用 CREATE DATABASE `python_test` CHARSET UTF8 导入数据库模块 import MySQLdb 连接数据库 con = MySQLdb.connect(host="localhost", user="root", passwd="******",db="pyt

python操作mysql数据库

一.数据库基本操作 1. 想允许在数据库写中文,可在创建数据库时用下面命令 create database zcl charset utf8; 2. 查看students表结构 desc students; 3. 查看创建students表结构的语句 show create table students; 4. 删除数据库 drop database zcl; 5. 创建一个新的字段 alter table students add column nal char(64); PS: 本人是很讨厌

python3操作mysql数据库的方法

软硬件环境 OS X EI Capitan Python 3.5.1 mysql 5.6 前言 在开发中经常涉及到数据库的使用,而python对于数据库也有多种解决方法.本文以python3中的mysql为例,介绍pymysql模块的使用. 准备数据库 创建一个mysql数据库,名字叫testdb,建立一张表叫testtable,它有3个字段,分别是id,数据类型是INT(11),设为主键.非空.UNSIGNED.AUTO INCREMENT,name,数据类型是VARCHAR(45),设为非空

Python操作MySQL简单实现方法

本文实例讲述了Python操作MySQL简单实现方法.分享给大家供大家参考.具体分析如下: 一.安装: 安装MySQL 安装MySQL不用多说了,下载下来安装就是,没有特别需要注意的地方. 一个下载地址:点击打开链接 二.示例: 复制代码 代码如下: # coding=utf-8 import MySQLdb   #查询数量 def Count(cur):    count=cur.execute('select * from Student')    print 'there has %s r

Python MySQLdb模块连接操作mysql数据库实例

mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档. 由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使用哪种数据库的方法都大同小异的,这里就给出一段示范的代码: #-*- encoding: gb2312 -*- import os, sys, string impo

在Python程序中操作MySQL的基本方法

Python操作Mysql 最近在学习python,这种脚本语言毫无疑问的会跟数据库产生关联,因此这里介绍一下如何使用python操作mysql数据库.我python也是零基础学起,所以本篇博客针对的是python初学者,大牛可以选择绕道. 另外,本篇基于的环境是Ubuntu13.10,使用的python版本是2.7.5. MYSQL数据库 MYSQL是一个全球领先的开源数据库管理系统.它是一个支持多用户.多线程的数据库管理系统,与Apache.PHP.Linux共同组成LAMP平台,在web应

python简单实现操作Mysql数据库

用python编写数据库的代码很方便,但是如果不想自己写sql语句,其实还有更多的讨巧办法.使用webpy的db库就是不错的一个选择.当然为了使用webpy的db,之前你还需要安装MySQLdb,其他的就不需要做什么了. 1.安装MySQLdb库 sudo apt-get install python-MySQLdb 2.安装webpy sudo apt-get install python-webpy 3.连接数据库 import web db = web.database(dbn='mysq

Python基于DB-API操作MySQL数据库过程解析

Python提供了一个标准数据库API,称为DB-API,用于处理基于SQL的数据库. 与任何底层数据库的交互都可以使用DB-API,因为DB-API在代码与驱动程序之间提供了一个抽象层,可以根据需要替换底层数据库,而无需丢弃现有的代码. DB-API与底层数据库交互示例: ①代码 ⇆ ②使用DB-API ⇆ ③数据库驱动程序 ⇆ ④底层数据库(如MySQL等) 使用DB-API操作MySQL数据库例子 1.Windows安装MySQL数据库驱动程序MySQL-Connector/Python

简单了解操作mysql数据库的命令行神器mycli

GitHub 可谓各种神器都有,今天发现一个操作数据库的命令行工具,可以自动补全和语法高亮,以前在终端敲 SQL 的时候,你不仅要记住表名.字段名,各种函数都需要记住才能敲出一条完整的语句来,否则就是先 Google 百度查文档. 而有了mycli 这个命令行辅助工具之后,省心不少.可以先看下效果图: 如果自己不去尝试,可能感受没那么强烈,所以不如自己尝试一下. 正常情况下直接用 pip 命令就可以安装 pip install mycli 如果安装出错了,可以参考下官方文档,或者升级下你的pip

Python3.6简单的操作Mysql数据库的三个实例

安装pymysql 参考:https://github.com/PyMySQL/PyMySQL/ pip install pymsql 实例一 import pymysql # 创建连接 # 参数依次对应服务器地址,用户名,密码,数据库 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='demo') # 创建游标 cursor = conn.cursor(cursor=pymysql.cursor

php简单操作mysql数据库的类

本文实例讲述了php简单操作mysql数据库的类.分享给大家供大家参考.具体如下: <?php /** * Database class * * @version: 2.2 * @revised: 27 may 2007 * **/ class Database { var $host; var $name; var $user; var $pass; var $prefix; var $linkId; function Database($mysql) { foreach($mysql as

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

在Windows平台上安装mysql模块用于Python开发 用python连接mysql的时候,需要用的安装版本,源码版本容易有错误提示.下边是打包了32与64版本. MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe 实例 1.取得 MYSQL 的版本 # -*- coding: UTF-8 -*- #安装 MYSQL DB for python import MySQLdb as mdb con

Python3.6简单操作Mysql数据库

本文为大家分享了Python3.6操作Mysql数据库的具体实例,供大家参考,具体内容如下 安装pymysql 参考https://github.com/PyMySQL/PyMySQL/ pip install pymsql 实例一 import pymysql # 创建连接 # 参数依次对应服务器地址,用户名,密码,数据库 conn = pymysql.connect(host='127.0.0.1', user='root', passwd='123456', db='demo') # 创建

一款简单实用的php操作mysql数据库类

本文实例讲述了一款简单实用的php操作mysql数据库类.分享给大家供大家参考.具体如下: 复制代码 代码如下: /* 本款数据库连接类,他会自动加载sql防注入功能,过滤一些敏感的sql查询关键词,同时还可以增加判断字段 show table status的性质与show table类 获取数据库所有表名等.*/ @ini_set('mysql.trace_mode','off'); class mysql {  public $dblink;  public $pconnect;  priv