Python调用Mysqldb完成MySql的CRUD操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python调用Mysqldb完成MySql的CRUD操作相关的知识,希望对你有一定的参考价值。

[硬件环境]

Win10 64位

[软件环境]

Python版本:2.7.3

IDE:JetBrains PyCharm 2016.3.2

Python库:

1.1) MySQL-python-1.2.4b4.win32-py2.7.exe

[搭建过程]

OpenCV Python库:

1. 直接EXE文件安装

[相关代码]

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import MySQLdb

# 您已经创建了数据库 TESTDB.
# 在TESTDB数据库中您已经创建了表 EMPLOYEE
# EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME。
# 连接数据库TESTDB使用的用户名为 "testuser" ,密码为 "test123",你可以可以自己设定或者直接使用root用户名及其密码,Mysql数据库用户授权请使用Grant命令。
# 在你的机子上已经安装了 Python MySQLdb 模块。

# 打开数据库连接
db = MySQLdb.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()

################################################ 创建数据库表 ####################################################
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

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

# 如果数据表已经存在使用 execute() 方法删除表。
cursor.execute("DROP TABLE IF EXISTS EMPLOYEE")

# 创建数据表SQL语句
sql = """CREATE TABLE EMPLOYEE (
         FIRST_NAME  CHAR(20) NOT NULL,
         LAST_NAME  CHAR(20),
         AGE INT,
         SEX CHAR(1),
         INCOME FLOAT )"""

cursor.execute(sql)

# 关闭数据库连接
db.close()

################################################ 数据库插入 ####################################################
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

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

# SQL 插入语句
sql = """INSERT INTO EMPLOYEE(FIRST_NAME,
         LAST_NAME, AGE, SEX, INCOME)
         VALUES (‘Mac‘, ‘Mohan‘, 20, ‘M‘, 2000)"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # Rollback in case there is any error
   db.rollback()

# 关闭数据库连接
db.close()

################################################ 数据库查询 ####################################################
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

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

# SQL 查询语句
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"

# 关闭数据库连接
db.close()

################################################ 数据库更新 ####################################################
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

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

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = ‘%c‘" % (M)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

# 关闭数据库连接
db.close()

################################################ 数据库删除 ####################################################
# 打开数据库连接
db = MySQLdb.connect("localhost", "testuser", "test123", "TESTDB" )

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

# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > ‘%d‘" % (20)
try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
except:
   # 发生错误时回滚
   db.rollback()

# 关闭连接
db.close()

 

以上是关于Python调用Mysqldb完成MySql的CRUD操作的主要内容,如果未能解决你的问题,请参考以下文章

Python with peewee to MySQL,保存/更新双倍现有行

Python Mysql操作.

Python&MySQL

Python&MySQL

mac里用PyCharm中引用MySqlDB始末

Python2 - MySQL适配器 MySQLdb